Skip to main content

Full text of "Byte Magazine Volume 04 Number 08 - LISP (THIRD SCAN)"

See other formats


LISP 


. i    i 

(yttmLmK(imm(^rni\{Q)         f 

(com)((n\i\x  sTjerjYa))vrt) 
C(ta(((c/ii?sn?/-i<G)B£AKic) 

(r  (com  (cm  ^TFjm) 

))))  wym(((iM(mw^^f^<^) 

(PRWr(WrXD(L  W)STOMG)))))) 

■■■^■•■■■■■■■■■■■■■■■■■■IHi 

(SETa  xPo&(cmKD 

(^EraMMcmiy)) 


A 


If  you  have  a  problem  that  can  be  solved  by  a  computer— we  have  a  systems  solution. 

*  Two  central  processors  with  maximum  RAIVI  capacities  of  56K  and  384  K  bytes 

*  Three  types  of  disk  drives  with  capacities  of  1 75K,  1 .2i\/l  and  1 6M  bytes 
•*  Two  dot  matrix  printers  with  80  and  132  line  capacity 

A  Selectric  typewriter  interface  and  a  daisy  wheel  printer 

Match  these  to  your  exact  need,  add  one  or  more  of  our  intelligent  terminals  and  put  together 
a  system  from  one  source  with  guaranteed  compatibility  in  both  software  and  hardware. 

Southwest  Technical  Products  systems  give  you  unmatched  power,  speed  and  versatility.  They 
are  packaged  in  custom  designed  woodgrain  finished  cabinets.  Factory  service  and  support  on 
the  entire  system  and  local  service  is  available  in  many  cities. 


SOUTHWEST  TECHNICAL  PRODUCTS  CORPORATION 

219  W.  RHAPSODY 

SAN  ANTONIO,  TEXAS  78216  (512)   344-0241 

Circle  350  on  inquiry  card. 


Latched 
Outputs 


4  MHz 
Crystal  Clock 


On  Card 

Voltage 

Regulation 


Parallel 
I/O  Port  #1 

\ 


Parallel 
I/O  Port  #2 

/ 


Parallel 
I/O  Port  #3 

\ 


RS-232  or 
Current  Loop 
I/O  Port  #4 

/ 


8KR0M 
Capacity 


IK  RAM 


Standard  Bus 

for  System 

Expandability 


Programmable 
Baud  Rate 
UARTwith 

Interval  Timers 


4  MHz  Z-80A 


Completely  Buffered 
Bus  Interface 


The  single  card  computer 

with  the  features 
that  help  you  in  real  life 


COMPLETE  COMPUTER 

In  this  advanced  card  you  get  a  pro- 
fessional quality  computer  that  meets 
today's  engineering  needs.  And  it's  one 
that's  complete.  It  lets  you  be  up  and 
running  fast.  All  you  need  is  a  power 
supply  and  your  ROM  software. 

The  computer  itself  is  super.  Fast 
4  MHz  operation.  Capacity  for  8K  bytes 
of  ROM  (uses  2716  PROMs  which  can 
be  programmed  by  our  new  32K  BYTE- 
SAVER®  PROM  card).  There's  also  IK  of 
on-board  static  RAM.  Further,  you  get 
straightforward  interfacing  through  an 
RS-232  serial  interface  with  ultra-fast 
speed  of  up  to  76,800  baud  —  software 
programmable. 

Other  features  include  24  bits  of  bi- 
directional parallel  I/O  and  five  on- 
board programmable  timers. 

Add  to  that  vectored  interrupts. 


ENORMOUS  EXPANDABILITY 

Besides  all  these  features  the  Cro- 
memco  single  card  computer  gives  you 
enormous  expandability  if  you  ever  need 
it.  And  it's  easy  to  expand.  First,  you 
can  expand  with  the  new  Cromemco 
32K  BYTESAVER  PROM  card  mentioned 
above.  Then  there's  Cromemco's  broad 
line  of  SlOO-bus-compatible  memory 
and  I/O  interface  cards.  Cards  with  fea- 
tures such  as  relay  interface,  analog 
interface,  graphics  interface,  opto- 
isolator  input,  and  A/D  and  D/A  con- 
version. RAM  and  ROM  cards,  too. 


Card  Cage        32K  BYTESAVER  PROM  card 


EASY  TO  USE 

Another  convenience  that  makes  the 
Model  sec  computer  easy  to  use  is  our 
Z-80  monitor  and  3K  Control  BASIC  (in 
two  ROMs).  V^ith  this  optional  software 
you're  ready  to  go.  The  monitor  gives 
you  12  commands.  The  BASIC,  with  36 
commands/functions,  will  directly  ac- 
cess I/O  ports  and  memory  locations  — 
and  call  machine  language  subroutines. 

Finally,  to  simplify  things  to  the  ulti- 
mate, we  even  have  convenient  card 
cages.  Rugged  card  cages.  They  hold 
cards  firmly.  No  jiggling  out  of  sockets. 

AVAILABLE  NOW/LOW  PRICE 

The  Cromemco  Model  SCC  is  avail- 
able now  at  a  low  price  of  only  S450 
factory  assembled  ($395  kit). 

So  act  today.  Get  this  high-capability 
computer  working  for  you  right  away. 


Q 


Cromemco 


incorporated 
Specialists  in  computers  and  peripherals 
280  BERNARDO  AVE.,  MOUNTAIN  VIEW,  CA  94040  >  (415)  964-7400 


Circle  80  on  inquiry  card. 


BYTE  August  1979 


^    iim^ 


You  can  do  surprising  things 

when  you  have  64  kilobytes  of  fast  RAM 

on  one  card 


4  MHz  FAST— AND  EXPANDABLE 

Here's  64  kilobytes  of  memory  on 
one  RAM  card.  Yes,  we  mean  51 2K 
bits  of  read/write  memory  on  this 
single  card. 

And,  yes,  we  mean  it's  fast.  With 
150-nanosecond  chip  access  times 
—  so  the  card  can  operate  in  fast 
Z-80  systems  with  no  wait  states. 
Repeat,  no  wait  states. 

EXPANDABLE  ON  TWO  LEVELS 

Not  only  does  the  new  Model 
64KZ  give  you  a  large,  fast  RAM 
but  it  is  expandable  on  two  levels. 

First,  through  our  Cromemco  Bank 
Select  feature,  you  can  expand  to 
512  kilobytes  in  eight  64K  banks. 

Or,  with  our  Extended  Bank  Select 
feature,  you  can  expand  memory 
space  to  as  much  as  16  megabytes. 

This  expandability  we  call  your 
obsolescence  insurance. 

The  legend  on  the  card's  heat  sink 
Is  an  easy  reference  for  address  and 
bank  selection. 


r3 


BENCHMARK  IT 

Obviously,  the  speed  and  memory 
capacity  of  this  new  card  give  you  a 
lot  of  power. 

You  can  see  that  for  yourself  in 
our  new  7-station  Multi-User  Com- 
puter System  which  uses  these  Model 
64KZ  cards.  This  SlOO-bus  system 
outperforms  the  speed  of  many  if 
not  most  timesharing  systems  of  up 
to  10  times  the  Cromemco  price. 

And  yet  where  some  of  these  much 
more  expensive  and  cumbersome 
systems  clearly  slow  to  a  snail's  pace 
when  timesharing,  the  Cromemco 
system  using  Bank  Select  switching 
runs  surprisingly  fast. 

SEE  IT  NOW 

See  the  new  Model  64KZ  at  your 
computer  dealer  now.  Study  the  lit- 
erature on  it.  See  how  for  only  $1785 
you  can  get  around  that  ever-present 
barrier  of  memory  that's  too  little 
and  too  slow. 

Cromemco 

incorporated 


For  high  reliability  all  Cromemco  memory 

cards  are  burned  in  at  the  factory  In  these 

temperature-controlled  ovens. 


^ti^A 


Cromemco  Multi-User  System 
shown  with  7  stations 


^^^^^     280  BERNARDO  AVE.,  MOUNTAIN  VIEW,  CA  94040  •  (415)964-7400 


Tomorrow's  computers  now 


2      BYTE  August  1979 


Circle  BO  on  Inquiry  card. 


I 


In  the  OueuG 


illTE  August  1979 
Volume  4,  Number  8 


Foreground 


50 

66 

94 

132 

206 

220 

10 

18 

26 

34 

82 

162 

170 

176 


ANYONE  KNOW  THE  REAL  TIME?,  by  Steve  Ciarcia 
Simple  methods  of  telling  time 

MODEL  OF  THE  BRAIN,  Part  3:    Comparison  of  Brain  and  Model,  by  James  Albus 
Does  CMAC  accurately  represent  human  brain  function? 

NATURE  OF  ROBOTS,  Part  3:  A  Closer  Look  at  Human  Behavior,  by  William  T  Powers 
Simulating  a  3-muscle  system 

THE  DESIGN  OF  AN  M6800  LISP  INTERPRETER,  by  S  Tucker  Taft 
The  theory  behind  one  implementation 

LISP  APPLICATIONS  IN  BOOLEAN  LOGIC,  by  Richard  Weyhrauch  and  Hereon  Graves 
Perform  Boolean  logical  operations  with  LISP 

AN  OVERVIEW  OF  LONG  DIVISION,  by  Geoffrey  Gass 
Providing  real  answers  to  division  problems 


Background 


AN  OVERVIEW  OF  LISP,  by  John  Allen 
Developing  a  feel  for  LISP 

LISP  BASED  SYSTEMS  FOR  EDUCATION,  by  J  Laubsch,  G  Fischer,  and  H  D  Bocker 
Using  computers  as  learning  tools 

THE  LAMBDINO  STORAGE  MANAGEMENT  SYSTEM,  by  G  Prini  and  M  Rudalics 
Data  storage  techniques  represent  major  design  considerations 

PATTERN-DIRECTED  INVOCATION  LANGUAGES,  by  William  A  Kornfeld 
A  data  base  development  tool 

EXPLORING  TRS-80  GRAPHICS,  by  George  H  Yeager 
Machine  language  access  to  graphic  display  characters 

A  MATHEMATICIAN'S  VIEW  OF  LISP,  by  Vaughan  R  Pratt 
A  look  at  LISP  as  a  vehicle  for  expressing  ideas 

A  PREVIEW  OF  THE  MOTOROLA  68000,  by  A  I  Halsema 
A  look  at  another  16-bit  processor 

LISP  BASED  SYMBOLIC  MATH  SYSTEMS,  by  David  R  Stoutemyer 
The  computer  as  an  algebraic  manipulator 


Nucleus 


Letters,  6 

Editorial:  Returning  to  the  Tower  of  Babel  or 

LISP  Notes,  62 

BYTE  News,  89 

Technical  Forum,  126 

BYTE's  Bugs,  194 

Event  Queue,  196 


Clubs  and  Newsletters,  200 
BYTE's  Bits,  204 
Programming  Quickies,  212 
Book  Reviews,  218 
What's  New?,  225 
Unclassified  Ads,  263 
Reader  Service,  BOMB,  264 


page  18 


1 

utmt 

1 

1         "1 

1      NAMt        1 

1 

AODRCSS 

1            1 

1 

1            I 

STBCer 

l^agc  50 


(DE  TAUT(WFF1(TAUT1  (SIMP  WFF)|| 

IDE  TAUT1  (W) 
(COND 

IdSCONST  W]  W) 
(T  (TAUT 

((LAMBDA  (X)  (MKAND  (SUBST 
(SUBST 
(FIRSTVARW)))!)) 


(DESIMP(W) 

(COND  ((OR  (ISCONST  W)  (ISVAR  Wll 

((ISNOT  Wl  (SIMPNOT  (SIMP  | 

(dSORWl  (SIMPOB  (SIMP  (Ih 

(SIMP('hi 

IdSAND  Wl  (SIMPAND  (SIMP 

(SIMP( 

((ISIMPLIESW)(SIMPIMP(Slfc 

(SIk 

(dseouiv  Wl  (SiMPEOuiv  (S 

(S 


(DE  SIMPNOT  (Wl  (COND  HiSFALSE  Wl 
IdSTRUE  Wl  h 
(T  (MKNOT  W 

(DE  SIMPOR     (Wl  W21  (SIMPANDOR 

IDE  SIMPAND  (Wl  W21  (SIMPANDOR 

(DE  SIMPIMP    IWl  W21 ISIMPOB  ISIUP 

(DE  SIMPEQUIV  |W1  W2I 

ISIMPAND  (SIMPIMP  Wl  W2XSIMPI 

(DE  SIMPANDOR  I0PW1  W2  VI  V21 

ICOND  (IISTRUE  V 


page  206 


Cover  Art:  New  Worlds  of  LISP,  by  Ken  Lodding 


BYTE  is  published  monthly  by  BYTE  Publications  Inc.  70  Main  St,  Peterborough  NH  03458.  A  wholly-owned  subsidiary  of  McGraw-Hill,  Inc.  Address  all  mail  except  subscrip- 
tions to  above  address:  phone  (603)  924-7217.  Address  subscriptions,  change  of  address.  USPS  Form  3579,  and  fulfillment  questions  to  BYTE  Subscriptions,  PO  Box  590,  Martins- 
ville NJ  08836.  Second  class  postage  paid  at  Peterborough  NH  03458  and  at  additional  mailing  offices— USPS  Publication  No.  102410  (ISSN  0360-5280).  Subscriptions  are  $18  for 
one  year,  $32  for  two  years,  and  $46  for  three  years  in  the  USA  and  its  possessions.  In  Canada  and  Mexico,  $20  for  one  year,  $36  for  two  years,  $52  for  three  years.  $32  for  one  year 
air  delivery  to  Europe.  $32  surface  delivery  elsewhere.  Air  delivery  to  selected  areas  at  additional  rates  upon  request.  Single  copy  price  Is  $2  in  the  USA  and  its  possessions,  $2.40 
in  Canada  and  Mexico,  $3.50  in  Europe,  and  $4  elsewhere.  Foreign  subscriptions  and  sales  should  be  remitted  in  United  States  funds  drawn  on  a  US  bank.  Printed  in  United  States 
of  America. 

Address  all  editorial  correspondence  to  the  editor  at  the  above  address.  Unacceptable  manuscripts  will  be  returned  If  accompanied  by  sufficient  first  class  postage.  Not 
responsible  for  lost  manuscripts  or  photos.  Opinions  expressed  by  the  authors  are  not  necessarily  those  of  BYTE.  Entire  contents  copyright  ©  1979  by  BYTE  Publications  Inc.  All 
rights  reserved. 

BYTE"  is  available  in  microform  from  University  Microfilms  International,  300  N  Zeeb  Hd,  Dept  PR.  Ann  Arbor  Ml  48108  USA  or  18  Bedford  Row,  Dept  PR,  London  WC1R  4EJ 
ENGLAND. 


Subscription  WATS  Line:  (800)  258-5485 


Office  hours:  Mon-Thur  8:30  AM  —  4:30  PM 
Friday  8:30  AM  —  Noon 


August  1979  ©  BYTE  Publications  Inc       3 


InTEiiseYTE 


About  the  Cover 

This  montli,  Ken  Lodding  has 
created  a  fantasy  on  far-out 
appUcations  witli  a  LISP  theme. 
The  surface  of  some  asteroid 
has  been  discovered.  A 
monohth  engraved  with  the 
S-expression  form  of  a  LISP 
program  is  gazed  upon  by  some 
astronauts.  We  presume  some 
archeology  of  this  monohth  will 
have  to  be  done  to  uncover  the 
balance  of  the  program.  We 
leave  it  to  readers  familiar  with 
LISP  to  identify  the  textbook 
from  which  these  S-expression 
fragments  were  taken,  and  the 
purpose  of  the  program. 


LISP  is  often  described  as 
a  special-purpose,  list- 
processing  language. 
However,  there  is  much 
more  to  the  language  than 
list  manipulation.  As  an 
introduction  to  this  lan- 
guage, guest  editor  John 
Allen  provides  An  Overview 
of  LISP.  Page  10 

In  LISP  Based  Systems  for 
Education,  J  Laubsch,  G 
Fischer,  and  H  D  Bocker 
discuss  the  evolving  com- 
puter culture  and  they  argue 
that  the  basic  concepts  and 
approach  to  computation 
that  LISP  represents  offers 
significant  advantages  within 
the  contemporary  educa- 
tional framework. 
Page  18 

The  management  of 
memory  space  is  very 
important  in  any  computer 
language.  To  the  user  of  a 
LISP  system,  memory  seems 
to  magically  appear  out  of 
the  "ether"  as  needed.  LISP 


systems  contain  a  storage 
reclamation  package  that 
scavenges  new  storage  from 
discarded  computations. 
Authors  Gianfranco  Prini 
and  Martin  Rudalics 
describe  the  Lambdino 
Storage  Management 
System.  Page  26 

William  A  Kornfeld  shows 
an  application  of  LISP  ideas 
in  the  artificial  intelligence 
domain.  Pattern-Directed 
Invocation  Languages  are 
powerful  tools  for  repre- 
senting and  manipulating 
facts  in  data  bases.  The 
implementation  of  these 
ideas  involves  2  facets  of 
LISP:  the  generalized  record 
structures,  called  property 
lists;  and  the  ability  to  store 
procedures  as  data  struc- 
tures. Page  34 

The  addition  of  a  real- 
time clock  to  your  computer 
system  expands  the  dimen- 
sions you  can  explore.  A 
real-time  clock  is  also  the 


basis  of  any  multiprogram- 
ming system.  Steve  Ciarcia 
provides  several  different 
real-time  clocks  in  Anyone 
Know  the  Real  Time? 
Page  50 

In  parts  1  and  2  of  A 
Model  of  the  Brain  for 
Robot  Control,  James  Albus 
described  a  neurological 
brain  model.  Part  3  shows 
how  this  structure  might  be 
used  to  produce  perceptual 
and  cognitive  phenomena. 
Page  66 

The  mystery  of  graphics 
on  the  Radio  Shack  TRS-80 
is  now  dispelled.  George  H 
Yeager  reveals  the  details  in 
Exploring  TRS-80  Graphics. 
Page  82 

In  the  third  part  of  The 
Nature  of  Robots,  William  T 
Powers  describes  the  how 
and  whys  of  his  particular 
model  of  human  behavior. 
Mr  Powers  develops  a 
2-level  control-loop  simu- 
lation of  a  3-muscle  system 
to  further  the  understanding 
of  how  our  own  control 
system  works. 

Page  94 

Other  articles  this  month 
discuss  many  of  the  applica- 
tions for  LISP.  It  is  only 
fitting  that  S  Tucker  Taft 
discusses  The  Design  of  an 
M6800  LISP  Interpreter. 
Page  132 

Several  LISP  articles  have 
centered  on  some  of  the 
unique  features  of  LISP  to 
aid  solution  of  nontrivial 
problems.  Mathematician 
and  computer  scientist 
Vaughan  Pratt  views 
languages  from  a  more 
distant  perspective.  He 


shows  that  features    found 
to  be  attractive  in  special 
cases  are  instances  of  general 
principles  that  a  program- 
ming language  must  observe 
if  generality  and  expressi- 
bility  are  not  to  be  com- 
promised. Vaughan  Pratt 
gives  us  A  Mathematician's 
View  of  LISP. 

Page  162 

A  I  Halsema  provides  us 
with  a  quick  description  of 
the  M68000  and  some  pos- 
sible applications  of  the  new 
processor  in  A  Preview  of 
the  Motorola  68000. 
Page  170 

Are  you  interested  in 
working  with  symbolic 
mathematics?  Perhaps  you 
manipulate  many  algebraic 
formulae.  David  Stoutemyer 
discusses  several  LISP  Based 
Symbolic  Math  Systems  that 
help  perform  these  func- 
tions. Page  176 

The  actions  of  digital 
circuits  may  be  described  by 
Boolean  expressions.  These 
expressions  can  be  mani- 
pulated by  a  program  to  test 
for  correctness,  simplify  the 
equation,  and  many  other 
logical  manipulations. 
Richard  Weyhrauch  and 
Henson  Graves  discuss  some 
LISP  Applications  in 
Boolean  Logic. 

Page  206 

Most  processors  do  not 
have  division  instructions. 
Therefore,  if  you  wish  to 
perform  division,  you  will 
have  to  write  your  own.  In 
An  Overview  of  Long  Divi- 
sion, Geoffrey  Gass  provides 
the  background  needed  to 
write  a  division  routine. 
Page  220 


Publishers 

Virginia  Londoner 
Gordon  R  Williamson 
Associate  Publisher 
John  E  Hayes 
Assistant 
JIM  ECallihan 

Editorial  Director 

Carl  T  Helmers  Jr 

Executive  Editor 

Christopher  P  Morgan 

Editor  In  Chief 

Raymond  G  A  Cote 

Senior  Editor 

Blaise  W  Lifflcli 

Editor 

Richard  Shuford 

Assistant  Editor 

Kent  Richard 

Editorial  Assistants 

Gale  Britton 

Faith  Ferry 

New  Products  Editor 

Clubs,  Newsletters 

Laura  A  Hanson 

Drafting 

Jon  Swanson 


Production  Editors 

David  William  Hayward 

Ann  Graves 

Faith  Hanson 

Warren  Williamson 

Art  Director 

Ellen  Bingham 

Production  Art 

Wal  Chiu  Li 

Christine  Dixon 

Holly  Carmen  LaBossiere 

Deborah  Porter 

Advertising  Director 

Patricia  E  Burgess 
Assistants 
Ruth  M  Walsh 
Marion  Gagnon 
Janet  Ames 
Adv/Prod  Coordinator 
Thomas  Harvey 
Advertising  Billing 
Noreen  Bardsley 
Don  Bardsiey 

Traffic  Department 

fvlark  Sandagata 
Thomas  Yanni 


Circulation  Manager 

Gregory  Spitzfaden 
Assistants 
Pamela  R  Heaslip 
Agnes  E  Perry 
Melanie  Bertoni 
Barbara  Ellis 
Dealer  Sales 
Ginnle  F  Boudrieau 
Anne  M  Baldwin 
Receptionist 
Jacqueline  Earnshaw 

Typographers 

Cheryl  A  Hurd 
Stephen  Kruse 
Debe  L  Wheeler 
Photostat  Technician 

Tully  Londner 

Comptroller 

Kevin  Maguire 
Assistant 

Mary  E  Fluhr 


National  Advertising 
Sales  Representatives: 

Hajar  Associates  inc 

East 

280  Hillside  Av 

Needham  Heights  MA  02194 

(617)  444-3946 

621  Fifth  Av 

New  York  NY  10017 

(212)  682-5844 

Midwest 

664  N  Michigan  Av 

Suite  1010 

Chicago  IL  60611 

(312)  337-8008 

West,  Southwest 

1000  Elwell  Ct 

Suite  227 

Palo  Alto  CA  94303 

(415)  954-0706/(714)  540-3554 


Officers  of  McGraw-Hill 
Publications  Company:  Gordon 
L.  Jones,  President;  Group  Vice 
Presidents:  Daniel  A.  McMillan, 
James  E.  Boddorf;  Senior  Vice 
Presidents:  Russeil  F.  Anderson: 
Ralph  R.  Sohuiz,  Editorial;  Vice 
Presidents:  James  E.  Hackett, 
Controller;  Thomas  H.  King, 
Manufacturing;  Robert  L. 
Leyburn,  Circulation;  John  W. 
Patten,  Sales;  Edward  E. 
Schirmer,  International. 

Officers  of  the  Corporation: 
Harold  W.  McGraw  Jr.,  President, 
Chief  Executive  Officer  and 
Chairman  of  the  Board;  Robert  F. 
Landes,  Senior  Vice  President 
and  Secretary;  Ralph  J.  Webb, 
Treasurer. 


August  1979  ©  BYTE  Publications  Inc 


Circle  220  on  inquiry  card. 


# 


:a--SE' 


illiKibii-Ji'  ip-|^f^^«ilfei  -mm 


m    ■ 

i^^L..  n&-  -=s 

<  1 1  i^Vu^^^HRi 

Qua 

'W ; 

h' 

r^  ■      : 

3 

^  =    •• 

1 

.ipVf';^'        -f 

i  t  -  s'     •: 

:!..-  .  j^..^^ 

"-■^      wr,  •-•  ~_N 

ft<  tfc<> 


|//U\\#r 


S-100  Compatibittfy.  6809  Computabilify. 


IK  RAM 

10K  PROM  space 

MONBUG  II  monitor  included 

2400  baud  cassette  interface 

20  I/O  lines 

RS-232  level  shifters 

Real  time  clock 

DMA 

Parallel  keyboard  input 

Memory-mapped  video  firmware 

Fully  S-100  compatible 
(including  8080  type  I/O) 

A  complete  system,  ready  to  use. 


MD-690  b  Single  Board  Computer 
$239  Kit     $299  Assembled 


•  6809 

16  bit  internal  arithmetic 
Hardware  multiplication 
Two  stack  pointers 
Two  index  registers 
18  addressing  modes 
Fully  relocatable  code 
Five  interrupts 
Up  to  three  times  the 
throughput  of  a  4MHz  Z-80 


Micro  DaSys 


mi^r^ 


1 


P.O.  BOX  36051 ,  LOS  ANGELES,  CA  90036,  USA 


/* 


Look  for 

Shugart  driven 

in  personal 

comptiler  systems 

made  by  these 

companies 


Altos  Computer  Systems 

2378-B  Walsh  Avenue 
Santa  Clara,  CA  95050 

Apple  Computer 

10260  Bandley  Dr. 
Cupertino,  CA  95014 

Digital  Microsystems  Inc. 

(Formerly  Digital  Systems) 
4448  Piedmont  Ave. 
Oakland.  CA  94611 

Imsal  Mfg.  Corporation 

14860  Wicks  Blvd. 

San  Leondro,  CA  94577 

Industrial  Micro  Systems 

633  West  Kctella,  Suite  L 
Orange,  CA  92667 

North  Star  Computer 

2547  9th  Street 
Berkeley,  CA  94710 

Percom  Data 

318  Barnes 
Garland,  TX  75042 

Polymorphic  Systems 

460  Ward  Dr. 

Santo  Barbara,  CA  93111 

Problem  Solver  Systems 

20834  Lassen  Street 
Chotsworth,  CA  91311 

Processor  Applications  Limited 

2801  E.  Valley  Viev*/  Avenue 
WestCovina,  CA91792 

SO  Sales 

3401  W.  Kingsley 
Garland,  TX  75040 

Smoke  Signal  Broadcasting 

6304  Yucca 
Hollyvi^ood,  CA  90028 

Technico  Inc. 

9130  Red  Branch  Road 
Columbia,  MD  21045 

Texas  Electronic  Instruments 

5636  Etheridge 
Houston,  TX  77087 

Thini<er  Toys 

1201  10th  Street 
Berkeley,  CA  94710 

Vista  Computer  Company 

2807  Oregon  Court 
Torrance,  CA  90503 


fc^.Shugart 

August  1979  ©  BYTE  Publications  Inc 


EditopisI 


Returning  to  the  Tower  of  Babel, 
or...  Some  Notes  About  LISP, 
Languages  and  Other  Topics... 

fay  Carl  Helmers 


This  is  the  August  issue  of  BYTE.  It  is  also  the  third  consecutive  year  that 
we've  chosen  to  have  a  computer  language  as  an  issue  content  theme — a  choice 
which  is  reflected  in  a  number  of  articles,  as  well  as  the  cover  painting  by  Ken 
Lodding. 

In  the  past  two  years,  the  August  issues  have  had  themes  of  APL  (1977)  and 
Pascal  (1978).  This  year,  we  continue  the  August  emphasis  on  languages  with 
a  special  issue  devoted  to  the  language  LISP.  An  experiment  in  editorial  policy 
is  also  reflected  in  this  issue.  John  Allen  was  responsible  for  the  solicitation  and 
technical  reviewing  of  the  articles  concerning  LISP  in  this  issue,  truly  function- 
ing in  the  capacity  of  "Guest  Editor"  of  BYTE.  John  has  been  involved  with 
computation  research  involving  LISP  for  some  time,  and  he  is  in  touch  with 
many  of  the  members  of  the  artificial  intelligence  community.  Some  of  his 
comments  on  LISP  appeared  in  the  March  1979  issue  of  BYTE  in  the  form  of  a 
guest  editorial.  As  a  result  of  his  earlier  writings  about  LISP  as  an  appropriate 
tool  of  expression  for  personal  computing,  we  asked  him  to  take  charge  of  the 
LISP  oriented  technical  content  of  this  issue  and  several  issues  to  follow. 
Readers  will  find  a  wealth  of  information  as  a  result  of  John's  efforts. 

By  making  LISP  a  feature  of  this  issue  of  BYTE,  we  are  emphasizing  the 
history  of  LISP's  utility  in  artificial  intelligence  and  computation  research.  The 
language  is  derived  from  the  work  of  John  McCarthy  in  the  early  1960's.  LISP 
will  have  its  place  in  personal  computing,  alongside  a  number  of  other  styles  of 
expression.  For  lack  of  appropriate  systems  software,  I  have  not  personally 
used  LISP  to  any  extent,  but  I  believe  that  I  have  the  beginnings  of  an  abstract 
appreciation  of  its  potential.  This  perspective  comes  from  personal  contact 
with  individuals  who  use  LISP  regularly,  as  well  as  reading  which  includes  the 
articles  in  this  issue  as  collected  by  John  Allen. 

In  a  recent  (May  24  1979)  conversation  with  Gary  Kildall  on  the  occasion  of 
the  fifth  IEEE  Computer  Society  Asilomar  Conference  on  Microcomputing,  I 
mentioned  the  LISP  issue.  Gary  has  a  background  in  computer  systems  soft- 
ware work  with  special  emphasis  on  small  scale  computer  systems  of  the  kind 
used  by  BYTE  readers.  He  is  the  first  implementor  of  the  PL/M  compilers  for 
Intel's  8080  microprocessors,  and  he  and  his  firm.  Digital  Research,  are 
responsible  for  one  of  the  most  widely  used  8080  and  Z-80  oriented  software 
products,  the  CP/M  operating  system.  I  learned  some  interesting  points  from 
Gary  about  LISP  and  its  significance  to  the  use  of  computers,  viewpoints 
which  are  worth  repeating  for  readers. 

Gary  made  the  statement  that  LISP  is  basically  his  preferred  language.  He 
explained  that  LISP  has  a  certain  natural  elegance,  but  that  people  often  tend 
to  write  FORTRAN  or  BASIC-like  sequential  "PROGs"  as  opposed  to  the  im- 
plicitly parallel  and  recursive  tree  structures  natural  to  LISP.  He  emphasized 
that  this  is  a  mistake.  LISP  represents  a  different  point  of  view  from  which  to 
analyze  problems. 

Text  continued  on  page  154 


to  5  inmifloppy  "now « 
works  nights  and  weekender 


"I  own  a  fast-growing  business  and  before  1 
bought  my  computer  system  I  put  in  a  lot  of  late 
hours  keeping  up  with  my  accounting  and 
inventory  control.  Now  the  computer  does  my 
number  crunching  quickly,  so  I  hove  time  after 
hours  to  have  some  fun  with  the  system.  My  son 
and  I  started  out  playing  Star  Trek  on  the  system, 
and  now  we're  learning  to  play  chess. 

"When  I  was  shopping  around  for  my  system, 
the  guys  in  the  computer  stores  demonstrated  all 
the  unique  features  of  the  minifloppy.  I've  got  to 
admit  that  at  first  I  didn't  really  understand  all  the 
technical  details.  But  now  that  1  use  the  system 
every  day,  I  really  appreciate  the  minifloppy's  fast 
random  access  and  data  transfer.  I  like  the 
reliability,  too. 


"I'm  glad  I  went  with  Shugart  drives.  Look, 
when  you  lay  out  your  own  money  for  a  system, 
you  want  dependable  performance  and  good 
value.  Do  what  I  did.  Ask  for  the  system  with  the 
minifloppy." 

If  it  isn't  Shugart, 
it  isn't  minifloppy. 

^®  Shugart  Associates 

435  Oakmead  Parkway,  Sunnyvale,  California  94086 


See  opposite  page  for  list  of  manufacturers  featuring  Shugart's  minifioppy  in  their  systems. 

TM  minifloppy  is  a  registered  trademark  ot  Shugart  Associates 


BYTE  August  1979 


Letters 


More  Puzzling 


Puzzling  Rotation 
Explained 


Ken  Barbier  poses  a  question  in 
"Puzzling  Rotation"  (May  1979  BYTE, 
page  216)  which  is  intimately  related  to 
my  comments  on  periodic  decimal  ex- 
pansions in  that  same  issue  (page  210). 

Any  number  N  which  has  a  repeating, 
periodic  decimal  expansion  of  1/N  with 
maximum  period  length  (N  — 1)  gives 
rise  to  a  magic  number  X  = 
INT((1/N)*10(N-1)).  As  he  pointed 
out,  any  multiple  of  X  such  as  KxX 
(with  K  less  than  N)  contains  the  same 
digits  as  does  X,  but  cyclically  rotated. 
N  =  7  is  the  only  example  in  base  10 
arithmetic  less  than  10;  larger  values  of 
N  are,  for  example,  17  (yielding 
X  =  0588235294117647)  and  19  (which 
gives  X  =  052631578947368421).  In  base 
8,  some  interesting  numbers  are  given  by 
N  =  5  (X  =  1463,  base  8)  and  N  =  ll  (base 
10)  (X  =  0564272135  base  8);  in  base  15, 
a  magic  X  is  124936DCA5B8. 

I  have  not  been  able  to  find  any  magic 
numbers  in  base  4,  base  16,  or  base  64; 
perhaps  some  reader  can  prove  that 
npne  exists  for  bases  which  are  powers 
of  4. 

If  the  length  of  the  repetition  period 
of  1/N  is  shorter  than  the  maximum, 
then  the  magic  number  X  generated  by 
the  above  algorithm  will  still  re-appear 
with  digits  cyclically  permuted,  but 
other  numbers  also  appear  in  the  course 
of  the  multiplication.  Try, 
for  example,  N=13,  X  =  076923,  in  base 
10. 

For  some  insight  into  why  these 
numbers  are  magic,  you  might  want  to 
try  calculating  by  hand,  long-division- 
style,  some  examples  like  1/7,  2/7,  3/7, 
etc.  According  to  E  T  Bell's  biographical 
book  Men  of  Mathematics  (page  225), 
one  of  the  greatest  mathematicians  of  all 
time,  Carl  Friedrich  Gauss,  worked  out 
the  decimal  expansions  of  1/N  for  all  N 
up  to  1000  while  he  was  a  teen-ager. 
(And  in  the  1790's,  he  didn't  have  a 
home  computerl)  The  results  of  his 
calculations  inspired  him  to  discover  and 
prove  one  of  the  most  beautiful 
theorems  of  number  theory,  "quadratic 
reciprocity."  Playing  games  with 
numbers  is  still  a  fine  route  to 
inspiration.  Good  luck! 

Mark  Zimmermann 
Caltech  130-33 
Pasadena  CA  91125 


Regarding  "An  Added  Attraction" 
(Machine  Language  Puzzler  May  1979 
BYTE,  page  209),  I  would  like  to  share 
a  twist  on  the  problem  of  adding  two  8 
bit  values  in  registers  B  and  C  and  my 
solution. 

First,  let  me  admit  that  when  I  glanced 
through  the  puzzle  rules,  I  mistakenly 
assumed  that  all  subtraction  operations, 
as  well  as  the  addition  operations,  were 
prohibited  in  the  solution.  The  reason  I 
made  this  slip  is  that  the  problem  now 
becomes  a  little  harder  (something  akin 
to  the  business  of  multiplying  using 
addition  instructions  only). 

Anyway,  my  first  brute  force  attempt 
at  this  different  problem  required  12 
bytes: 

XRA  A 

LOOPl       INR  A 

DCR  B 

JNZ  L00P1 

L00P2      INR  A 

DCR  A 

JNZ  L00P2 

HLT 

This  works  by  initializing  a  counter 
using  the  byte-saving  exclusive-or  opera- 
tion. The  counter  is  then  incremented 
once  for  each  time  that  register  B  must 
be  decremented,  until  the  register 
reaches  zero.  Repeating  this  sequence 
using  register  C  results  with  the  sum  in 
the  accumulator.  Of  course,  this 
approach  ignores  overflow  detection,  as 
did  the  original  solutions  published  in 
BYTE. 

Being  dissatisfied  with  the  above,  I 
noticed  a  much  simpler  solution  in  7 
bytes: 

A,B 
A 
C 
LOOP 


LOOP 


MOV 

INR 

DCR 

JNZ 

HLT 


Interestingly,  this  is  only  2  bytes  more 
than  the  optimum  solution  presented  in 
the  Puzzler,  where  subtraction  is 
permitted. 

Steve  Duerksen 
Microcomputer  Consultant 
15  Dearborn  St 
Wellesley  MA  02181 


Attention:  Gamblers 

A  newsletter  is  being  started  for  com- 
puter enthusiasts  interested  in  analyzing 
gambling  systems,  the  Stock  and  Futures 
Markets,  etc.  The  first  issue  will  be 
priced  at  $1  and  those  interested  should 
indicate  preference  for  form,  content, 
and  subscription  rate.  Contact  Michael 
R  Downing,  c/o  Joe  Computer,  22713 
Ventura  Blvd,  Suite  F,  Woodland  Hills 
CA  91364." 


CompulerLcmcl® 


Huntsville,  AL 
Phoenix,  AZ 
Little  Rock,  AR 
Belmont,  CA 
Dublin,  CA 
El  Cerrito,  CA 
Hayward,  CA 
Lawndale,  CA 
Los  Altos,  CA 
Los  Angeles,  CA 
Marin,  CA 
Pasadena,  CA 
Sacramento,  CA 
Saddleback  Valley,  CA 
San  Bernardino,  CA 
San  Diego,  CA 
San  Diego  East,  CA 
San  Francisco,  CA 
San  Jose,  CA 
Santa  Maria,  CA 
Santa  Rosa,  CA 
Thousand  Oaks,  CA 
Tustin,  CA 
Walnut  Creek,  CA 
Colorado  Springs,  CO 
Denver,  CO 
Fairfield,  CT 
Hartford.  CT 
Newark,  DE 
Boca  Raton,  FL 
Ft.  Lauderdale,  FL 
Jacksonville,  FL 
Atlanta,  GA 
Honolulu,  HI 
Arlington  Heights,  IL 
Downers  Grove,  IL 
Mundelein,  IL 
Niles,  IL 
Oak  Lawn,  IL 
Peoria,  IL 
Indianapolis,  IN 
Overland  Park,  KS 
Louisville,  KY 
Boston,  MA 
Rockville,  MD 
Grand  Rapids,  Ml 
Rochester,  Ml 
Southfield,  Ml 
Bloomington,  MN 
Hopkins,  MN 
Springfield,  MO 
St.  Louis,  MO 
Nashua.  NH 
Cherry  Hill,  NJ 
Bergen  County,  NJ 
Morristown,  NJ 
Buffalo,  NY 
Ithaca,  NY 
Nassau  County,  NY 
Charlotte,  NC  - 
Cleveland  East,  OH 
Cleveland  West,  OH 
Columbus,  OH 
Oklahoma  City,  OK 
Portland,  OR 
Harrisburg,  PA 
Paoh,  PA 
Austin,  TX 
Dallas,  TX 

Southwest  Houston,  TX 
Houston  Bay  Area,  TX 
Salt  Lake  City,  UT 
Tyson's  Corners,  VA 
Bellevue.  WA 
Federal  Way,  WA 
Tacoma,  WA 
Madison,  Wl 
Milwaukee,  Wl 
INTERNATIONAL 
Adelaide,  Australia 
Brisbane,  Australia 
Melbourne.  Australia 
Perth,  Australia 
Sydney,  NSW  Australia 
Brussels,  Belgium 
Burlington,  Canada 
Calgary,  Alberta  Canada 
Toronto,  Canada 
Winnipeg,  Canada 
Manila,  Philippines 


12051  539-1200 


Call  D 
Call  D 


Call  D 
Call  D 

Call  D 


1602) 
(501) 
(415) 
(415) 
(415) 
(415) 
(213) 
(4151 
(213) 
(415) 
(213) 

irectory  In 
(714) 
(714) 
(714) 
(714) 
(415) 
1408) 
(805) 
1707) 
(805) 
(714) 
(415) 
(3031 
(303) 
(203) 

rectory  In 
(302) 
(305) 
(305) 
(9041 
(4041 
(808) 
(3121 
(312) 
(312) 
(312) 
1312) 
(309) 

rectory  In 
1913) 
(5021 
(617) 
(3011 
(616) 
(313) 
(313) 
1612) 

rectory  In 
(417 

rectory  In 
16031 
(6091 
(201) 
(201) 
(716) 
(607) 
(516) 
(704) 
(216) 

rectory  In 
(614) 

rectory  In 
(503) 
(717) 

rectory  In 
(512) 
(214) 
(713) 
(713) 
(801) 
(7031 
1206) 
(206) 
(206) 
(608) 
(414) 


956-5727 
224-4508 
595-4232 
828-8090 
233-5010 
538-8080 
371-7144 
941-8154 
776-8080 
459-1767 
449-3205 
formation 
770-0131 
886-6838 
560-9912 
464-5656 
546-1592 
253-8080 
928-1919 
528-1775 
495-3554 
544-0542 
935-6502 
574-4150 
759-4685 
255-9252 
formation 
738-9656 
3681  122 
566-0776 
731-2471 
953-0406 
521-8002 
255-6488 
964-7  762 
949-1300 
967-1714 
422-8080 
688-6252 
formation 
492-8882 
425-8308 
235-6252 
948-7676 
942-2931 
652-9000 
356-8111 
884-1474 
formation 
883-7085 
formation 
889-5238 
795-5900 
845-9303 
539-4077 
836-6611 
277-4888 
7422262 
53&8500 
461  1200 
f  ormanon 
888-2215 
(ormation 
620-6170 
763-11  16 
lormation 
452-5701 
363-2223 
9  7  7- 0909 
488-8153 
364  4416 
893-0424 
746-2070 
8389363 
581  0388 
273-2020 
466-8990 


22  35  083 

07  221  9777 

62  55  81 

Call  Directory  Information 

29-3753 

(02)  511-34-45 

14161632-5722 

Call  Directory  Information 

(416)  485-6700 

1204)  772  9519 

58-36-66 


8         August  1979  &  BYTE  Publications  Inc 


Circle  75  on  inquiry  card. 


If  the  truth  is  that  you  want  a 
computer  .  .  .  then  we  want  to  be  your 
computer  store. 

Were  ComputerLand,  the  #1 
computer  store  chain  in  the  U.S.  What's 
meaningful  about  that  fact  is,  that 
ComputerLand  has  been  chosen  by  more 
people  OS  having  what  they've  been 
looking  for  And,  since  you're  looking,  let 
us  tell  you  what  you'll  find,  when  you  visit 
a  ComputerLand  store. 

You'll  find  a  product  line  that's 
continually  evaluated  to  provide  you  with 
the  widest  and  best  selection  in  quality, 
brand  name  microcomputers  anywhere. 
You'll  find  an  enthusiastic  and 
knowledgeable  staff  able  to  interpret  all 
the  equipment  specifications,  in  terms  of 
how  they  apply  to  you,  and  in  a  way 
you'll  understand.  You'll  find  demonstration 
areas  where  you  can  get  a  firsthand 
experience  of  running  a  computer  yourself. 


You'll  find  educational  materials  to  give 
you  a  total  insight  into  the  world  of 
microcomputers. 

You  II  find  a  fully  equipped  service 
department  to  provide  whatever  assistance 
is  required  to  keep  your  computer  running 
in  top-notch  condition.  You'll  find  computer 
user's  clubs  to  join,  where  you  can  share 
ideas  with  people  as  enthusiastic  as 
yourself.  And,  with  each  new  visit,  you'll 
find  excitement— from  the  people  you  deal 
with,  the  equipment  they  offer,  and  from 
your  own  ever-growing  personal 
involvement. 


Enough  about  us.  How  about  what 
computers  do. To  attempt  to  describe  all 
the  things  your  computer  might  do,  would 
be  to  describe  your  imagination.  So 
instead,  we'll  briefly  list  some  of  the  many 
things  for  which  small  computers  are 
already  being  used. 

In  business,  the  advent  of  the 
versatile  and  compact  microcomputer  has 
put  the  benefits  of  computing  within  reach 
of  small  companies.  With  systems  starting 
at  less  than  $6000,  the  businessman  con 


FORTHEHMIE 


ComputerLand  Corp. 

14400  Catalina  St. 

San  Leandro,  CA  94577 

(415)895-9363 

Franchise  Opportunities  Worldwide. 

.t  ComputerLand  Corp.,  1978 


ll 


*\ 


computerize  things  like  accounting, 
inventory  control,  record  keeping,  word 
processing  and  more. The  net  result  is  the 
reduction  of  administrative  overhead  and 
the  improvement  of  efficiency  which  allows 
the  business  to  be  managed  more 
effectively. 

In  the  home,  a  computer  can  be  used 
for  personal  budgeting,  tracking  the  stock 
market,  evaluating  investment  opportunities, 
controlling  heating  to  conserve  energy, 
running  security  alarm  systems,  automating 
the  garden's  watering,  storing  recipes, 
designing  challenging  games,  tutoring  the 
children  .  .  .  and  the  list  goes  on. 

In  Industry,  the  basic  applications  are 
in  engineering  development,  process 
control,  and  scientific  and  analytical  work. 
Users  of  microcomputers  in    industry 
have  found  them  to  be  reliable,  cost- 
effective  tools  which  provide  computing 
capability  to  many  who  would  otherwise 
have  to  wait  for  time  on  a  big  computer, 
or  work  with  no  computer  at  all. 


And  now  we  come  to  you,  which  leads 
us  right  back  to  where  we  started:  If  you 
want  a  computer,  then  we  want  to  be 
your  computer  store. 

Whether  you  want  a  computer  for  the 
home,  business  or  industry,  come  to 
ComputerLand  first.  We'll  make  it  easy  for 
you  to  own  your  first  computer  Because, 
simply  put,  we  really  want  your  business. 
When  you  come  right  down  to  it,  that's 
what  makes  us  #1. 


CompulerlciAcI 

WE  KNOW  SMALL  COMPUTERS 


ComputerLand  Europe 
Europa  Terrassen 
8  Rue  Jean  Engling 
Dommeldange,  Luxembourg 
Phone  43  29  05  Telex  2423 

BYTE  AuBusl  1979         9 


An  Overview  of  LISP 


John  Allen 

Signetics 

811  E  Acques  Ave 

Mail  Stop  38 

Sunnyvale  CA  94086 


LISP  is  a  higher  level  machine  language. 

LISP  is  simple  and  difficult,  elegant  and  ad  hoc;  it  is  a 
beautiful  blend  of  foresight  and  fortuity.  LISP  is  a  pro- 
gramming language,  often  characterized  as  a  special  pur- 
pose list-processing  language.  But  LISP  is  no  more  a 
special  purpose  programming  language  than  mathematics 
is  a  special  purpose  language  for  floating-point  computa- 
tions. Just  as  there's  more  to  mathematics  than  the 
accounting  and  bookkeeping  properties  present  in 
"general  purpose"  programming  languages,  there's  much 
more  to  LISP  than  "just  another  programming  language." 

The  best  description  of  the  LISP  programming  lan- 
guage is  that  it  is  a  high  level  machine  language.  That  is, 
it  shares  many  of  the  facets  of  contemporary  machine 
language  — the  necessity  for  attention  to  detail  and  the 
freedom  to  manipulate  the  machine's  data  and  programs 
without  restriction —  yet  LISP  is  high  level  in  that  the 
language  contains  the  expressive  power  and  convenience 
of  traditional  high  level  languages.  The  contradiction  is 
resolvable:  a  LISP  machine  is  just  a  higher  level  machine 
whose  data  items  are  organized  differently  from  the 
binary  bit  patterns  of  most  machines,  and  the  LISP  pro- 
gramming language  is  the  assembly  language  for  this 
machine. 

LISP  Data  Structures 

Before  introducing  the  constructs  of  the  language,  we 
must  discuss  the  data  items  of  the  language.  In  a  tradi- 
tional language  we  would  find  numeric  constants.  In 
LISP,  the  analogous  constants  are  called  atoms.  An  atom 
is  either  a  numeral  or  a  literal  atom  — a  string  of  upper 
case  alphanumeric  characters  such  that  the  first  character 
in  the  string  is  an  alphabetic  character.  For  example, 
ABC123,  12,  and  MI  are  atoms,  but  1A2  and  (A  B)  are 
not. 

LISP  also  has  composite  constants  called  lists.  Lists  are 
built  out  of  atoms  and  other  lists  as  follows: 

•  Any  atom  or  list  can  be  an  element  of  a  list. 

•  Given  any  collection  e,,  ...,  e„  of  list  elements,  then 
(e,   ...  e„)  is  also  a  list. 

So,  (A  B)  is  a  list;  as  is  (A  B  C),  and  (A  1  (ABC  23)).  The 


About  the  Author 

]ohn  Allen,  our  guest  editor  for  this  special  LISP  theme  issue,  is  the 
author  of  the  hook  Anatomy  of  LISP  and  currently  product  engineer  at 
Signetics  Corporation.  He  is  also  founder  of  The  LISP  Company,  an 
organization  to  produce  LISP  related  products. 


last  example  is  a  list  of  three  elements;  its  third  element  is 
also  a  list  —  of  two  elements:  the  atom  ABC  and  the 
numeral  23. 

Atoms  and  lists  are  the  basic  LISP  data  structures. 
However,  a  robust  production  version  of  LISP  includes 
many  more  data  objects  including  arrays,  arbitrary  preci- 
sion numbers,  strings,  and  representation  of  functions  as 
data  objects.  Regardless  of  the  scope  of  the  data  represen- 
tations in  a  specific  LISP  implementation,  it  is  a  fund- 
amental property  that  all  data  objects  are  "first  class  ob- 
jects," constructible,  testable  and  available  without 
restriction.  This  uniform  behavior  of  data  is  a  property 
shared  by  few  other  languages. 

First 

We  need  some  operations  on  these  data  structures.  Just 
as  we  should  have  a  subtraction  operation  in  arithmetic 
machines  to  decompose  numbers,  we  have  LISP  instruc- 
tions to  decompose  lists.  One  such  operation  is  first;  it  ex- 
tracts the  first  element  of  a  list.  For  example: 

firstKA  B  C)j  gives:  A 

This  example  is  written  in  LISP's  external  syntax  called 
meta-LISP  or  M-LISP;  it  is  an  instance  of  prefix  notation. 
The  programming  language,  the  ititernal  notation,  is 
called  S-expression  LISP  or  S-LISP.  Initially,  we  will  pre- 
sent algorithms  in  M-LISP  since  it  is  closer  to  traditional 
programming  notation.  However,  since  S-LISP  is  our 
machine  language  we  will  insist  on  developing  facility 
with  that  notation. 

In  a  traditional  architecture,  both  instructions  and  data 
are  stored  in  memory.  The  processor  usually  has  com- 
plete freedom  to  manipulate  any  of  these  objects  as  either 
data  or  instructions.  An  object  accessed  by  the  instruc- 
tion counter  is  interpreted  as  an  instruction;  other  ac- 
cesses to  items  usually  imply  a  data  interpretation.  One 
goal  is  the  representation  of  LISP  instructions  as  data 
items  in  the  LISP  machine  such  that  the  processing  unit  of 
the  LISP  machine  will  have  equal  flexibility  in  inter- 
preting the  encoded  information.  An  object  may  some- 
times play  the  role  of  program,  and  sometimes  of  data. 

To  represent  program  as  data  we  must  specify  a 
translation  of  each  M-LISP  instruction  into  a  list 
representation: 

External  Notation 

<operation> /<operand>  ,;  ...  ;<  operand >„/ 

List  Notation 

f<operation>^<  operand >  i'^. ..  <  operand >„'j 


10        August  1979  ©  BYTE  Publications  Inc 


Circle  255  on  inquiry  card.. 


DOUBLE  DENSITY 


SOLID  SAVIN 


Now  you  can  put  your  S-100  system  solidly  into 
a  full-size,  single/double  density,  600K  bytes/side 
disk  memory  for  just  $1149  complete. 

DISCUS/2D™  single/double  density  disk 
memory  from  Thinker  Toys™  is  fully  equipped,  fully 
assembled,  and  fully  guaranteed  to  perform  perfectly 

DISCUS/2D™  is  a  second  generation  disk 
memory  system  that's  compatible  with  the  new  IBM 
System  34  format.  The  disk  drive  is  a  full-size  Shugart 
800R,  the  standard  of  reliability  and  performance  in 
disk  drives.  It's  delivered  in  a  handsome  cabinet  with 
built-in  power  supply 

The  S-100  controller  utilizes  the  amazing  Western 
Digital  1791  dual-density  controller  chip  . . .  plus 
power-on  jump  circuitry  IK  of  RAM,  IK  of  ROM  with 
built-in  monitor,  and  a  hardware  DART  to  make  I/O 
interfacing  a  snap. 

The  DISCUS/2D™  system  is  fully  integrated  with 
innovations  by  designer/inventor  George  Morrow. 
Software  includes  BASIC-V™  virtual  disk  BASIC, 


DOS,  and  DISK-ATE™  assembler/editor.  Patches  for 
GP/M*  are  also  included.  CPIM*  Microsoft  Disk 
BASIC  and  FORTRAN  are  also  available  at  extra  cost. 

DISCUS/2D™  is  the  really  solid  single/double 
density  disk  system  you've  been  waiting  for.  We  can 
deliver  it  now  for  just  $1149.  And  for  just  $795  apiece, 
you  can  add  up  to  3  additional  Shugart  drives  to  your 
system.  Both  the  hardware  and  software  are  ready 
when  vou  are. 

Ask  your  local  computer  store  to  order  the 
DISCUS/2D™  for  you.  Or,  if  unavailable  locally,  write 
Thinker  Toys,™  5221  Central  Ave.,  Richmond,  CA 
94804.  Or  call  (415)  524-2101  weekdays,  10-5  Pacific 
Time.  (FOB  Berkeley.  Cal.  res.  add  tax.) 

*CP/M  is  a  trademark  of  Digital  Research. 

CS^Morrow  makes  disk  memory  for 

Thuiker  Toys " 


The   raised   T   means   perform   the   translation   process 
recursively. 

For  this  translation  to  be  meaningful,  we  must  also 
describe  how  the  recursion  process  is  to  terminate: 

An  operation  in  external  notation  is  something  like 
first  or  +,  whereas  an  operationT  must  be  an  atom 
or  a  list.  We  translate  the  operation  name  to  an 
appropriate  atom:  first  translates  to  FIRST,  and  + 
to  PLUS. 

The  operand  of  firstKA  B  C)l  is  the  constant  (A  B 
C).  We  will  translate  a  constant  a  to  the  construct 
(QUOTE  a).  For  example,  we  represent  the  con- 
stant (A  B)  as  (QUOTE(A  B)).  This  solution  is 
similar  to  the  quoting  convention  of  natural 
language:  Cleveland  is  a  city,  but  "Cleveland"  is  a 
9-letter  word.  The  QUOTE  operator  is  more  than 
simple  pedantry;  it  will  play  a  critical  role  in  the 
fetch  operation  of  the  LISP  machine. 

To  summarize,  our  list  notation  consists  of  a  represen- 
tation of  the  operation  followed  by  the  representations  oi 
the  operands.  Those  operands  themselves  may  specify 
operations,  or  they  may  specify  constant  operands  by 
using  the  quote  operation.  For  example,  we  represent 
firstKA  B  C)I  as  (FIRST  (QUOTE  (A  B  C)))  and  (FIRST 
(FIRST  (QUOTE  ((A  B)  C))))  represents  firstlfirstl((A  B) 

cm. 

Values  are  obtained  on  a  LISP  machine  in  much  the 


computer  mart  of  new  jersey 
computer  mort  of  penrisylvonio 


5S 


■-■  the 
k^i  I  microcomputer 
people® 


Computers  don't  moke  o 
computer  store,  PEOPLE  do.  Our 
people  hove  been  involved  with 
microcomputers  since  day  one. 
We  offer  experience  and 
expertise  unparalleled  In  the 
microcomputer  Industry.  Whether 
you  ore  In  the  market  for  a 
complete  system,  peripherals, 
custom  software,  service,  or  just 
some  friendly  advice;  there  simply 
Is  no  other  place  to  go. 


Compufw  Mort  of  H*w  J«wy 

SOI  RsuM  37 
ll>lln.  KJ    0S60O 
(104)a8»««00 


STOUHOUM 
TuM.-Sot.10am-6pm 
TuM.  6  Thun.  'till  9pm 
aOSEO  MONDAYS 


Computer  Mort  of  Ponnsylvanlo 

9S0D*KolbPlk* 
KlngolPniulo.  PA  494M 
(91S)ai5-2S80 


same  manner  as  one  obtains  values  from  a  pocket 
calculator.  We  type  in  an  S-LISP  expression,  and  the 
calculator  displays  the  result.  The  evaluation  of  an  ex- 
pression can  be  quite  involved.  If  an  operand  specifies  a 
further  operation,  then  the  current  instruction  must  be 
suspended  while  that  subsidiary  computation  is  per- 
formed. So,  evaluating  (FIRST  (FIRST  (QUOTE  ((A  B) 
C))))  would  involve  the  following: 

The  leftmost  FIRST  must  wait  since  its  operand  re- 
quires evaluation;  similarly  the  next  FIRST  must 
wait  to  take  care  of  its  argument.  But  its  argument 
is  a  quoted  expression.  QUOTE  is  kind,  requiring 
no  further  computation,  but  it  always  returns  its 
argument  as  value.  Here  it  returns  the  list  ((A  B)  C). 
The  inner  FIRST  completes  now,  returning  (A  B)  to 
the  outermost  FIRST;  it  is  nudged  into  activity  and 
finally  returns  A. 

Consider  (FIRST  (QUOTE  (FIRST  (QUOTE  (A  B))))). 
Notice  that  the  embedded  expression  (FIRST  (QUOTE  (A 

B)))  has  the  appearance  of  a  LISP  instruction.  However, 
that  expression  is  surrounded  by  (QUOTE  ...  ),  therefore 
it  is  simply  a  list;  ie,  a  constant.  The  final  result  of  the 
evaluation  will  be  the  atom  FIRST  (since  the  computation 
encodes    the    M-expression    first[(FIRST    (QUOTE    (A 

B)))]). 
Since  quoted  expressions  appear  so  frequently,  we  will 
introduce  an  abbreviation.  We  write  (QUOTE  a.)  as  'a.. 
So,    the    previous    example    (FIRST   (QUOTE   (FIRST 

(QUOTE  (A  B)))))  could  be  expressed  as:  (FIRST 
'(FIRST  (QUOTE  (A  B))));    or  as  (FIRST  '(FIRST  '(A 

B))).  This  abbreviation  will  appear  many  times 
throughout  the  LISP  articles  in  this  and  following  issues. 

Rest 

We  also  have  an  instruction  named  REST.  You  may 
think  of  the  instruction  as  either  a  machine  operation  or 
as  the  translation  of  an  M-LISP  expression.  REST,  like 
FIRST,  expects  a  list  as  its  argument.  However,  REST 
returns  a  value  representing  the  list  with  the  first  element 
removed.  The  expression: 


yields: 


(REST  '(A  B  O) 


(BC). 


Similarly,  the  expression: 

(REST  '(B  O) 
yields: 

(C) 

What  about  (REST  '(C))l  When  we  remove  the  last 
element  from  a  list  we  get  the  empty  list.  Its  representa- 
tion in  LISP  is  (  j. 

The  operations  first  and  rest  are  called  selector  func- 
tions since  they  are  used  to  select  components  from  a 
composite  data  object. 


12         August  1979  ©  BYTE  Publications  Inc 


Circle  66  on  inquiry  card. 


The  Intecolor  8070  business  system. 
At  twice  the  price,  it  wouid  still  be  inexpensive. 


Because  ISC  is  the  world's  leading  manufacturer 
of  color  terminals,  we're  able  to  offer  unparalleled 
color  performance— at  phenomenal  prices. 

Our  8070  Series  I  Business  System  is  a  perfect 
example  of  rel  iable,  yet  extremely  reasonable  prod- 
ucts. Its  a  complete  8080A  microcomputer  system 
that  includes  the  following  standard  fea- 
tures; A  dual  floppy  disk  drive  with  591 K 
bytes  of  storage;  a  1 9"  color  data  display 
with  an  easily  readable  80  characters  x  ..  Jl 

48  line  format;  and  a  60  CPS  Impact 
Matrix  printer  All  for  a  remark- 
able -$7000,  single  unit  price. 

And  that  price  doesn't 
stop  at  hardware.  Intecolor's 
18K  Business  BASIC  in  ROM 
has  16  digit  accuracy  and  a 


PRINT  USING  feature  that  tailors  output  to  any 
specifications. 

If  you  need  greaterstorage  capabilities,  choose 
the  8071  —same  system,  but  with  a  dual  double- 
headed  floppy  disk  drive.  Giving  you  1 182K  bytes 
of  storage,  for  only  S800  more,  single  unit. 

Either  way  the  Intecolor  Series  I  can  relieve 
your  business  of  a  considerable  amount  of  paper- 
work, without  costing  you  a  great  deal  of  money 
(Terms— 5%  discount  for  prepay- 
ment, or  net  20  days.) 

For  more  information  and 
a  complete  demonstration, 
see  your  nearest  computer 
store,  or  contact  you  r  I SC 
sales  representative. 
Color  Communicates  Better 


'^ 


Unretouched  photo  of  screen 


Furniture  not  included 


U.S.  domestic  prices 


ISC  SALES  REPRESENTATIVES:  AL:  205/883-8660,  AK:  |GA)  4C4/449-5961 .  AZ:  602/994-5400,  AR:  (TXI  214/840-2169.  CA:  Alhambra  213/281-2280.  Goleta  805/964-8751 .  Irvine  714/557-4460.  Los 

Angeles  213/476-1241,  l^ounlain  View  415/964-9300.  San  Diego  714/292-8525,  CO:  303/759-0809,  CT:  (GA)  404/449-5961,  DE:  (GA)  404/449-5961,  DC:  (VA)  703/569-1502,  FL:  Orlando  305/425-55C5, 

Fl  Lauderdale  305/776-4800,  Melbourne  305/723-0766,  Tallahassee  904/876-6642,  GA:  404/455-1035,  HI:  808/524-8633,  ID:  (UT|  801/973-7969,  IL:  INo  1  312/564-5440,  (So. I  (MOI  816/765-3337 

IN:  (ID  312/564-5440,  IA:(MOI  816/765-3337  KS:  (MO)  816/765-3337  KY:  606/273-3771,  LA:  504/626-9701,  ME:  (GAI  404/449-5961,  IMD:  (VAl  703/569-1502, MA:  (GAl  404/449-5961, 

Ml:  313/227-7067  MN:  612/822-21 19,  MS:  (AL)  205/883-8660,  MO:  816/755-3337,  MT:  (CO)  303/759-0809,  NB:  (MO)  816/765-3337  NH:  (GA)  404/449-5961 ,  NJ:  (GA)  404/449-5961 , 

NV:  (AZl  602/994-5400,  NM:  505/292-1212,  NY:  (GA)  404/449-5961 ,  NC:  919/682-2383,  ND:  (MN)  612/822-21 19,  OH:  Dayton  513/429-9040,  Cleveland  216/464-81 13,  Columbus  614/436-2051 , 

OK:(TX)214/840-2169,  OR:  503/620-5800,  PA:  412/922-51 10,  Rl:  (GAI  404/449-5961,  SC:  803/798-8070,  SD:(MN)  612/822-21 19,  TN:  615/482-5761,  TX:  214/840-2169,  El  Paso  Area  (Las  Cruces,NM) 

505/523-0601,  Houston  Only  713/780-251 1,  UT:  801/973-7969,  VT:  (GA)  404/449-5961,  VA:  703/569-1502,  WA:  206/455-9180,  WV:  412/922-51 10,  Wl:  (IL)  312/564-5440,  WY:  (CO)  303/759-0809, 

EUROPEAN  EXPORT  SALES:  EUROPE,  (MA)  617/661-9424,  BELGIUM:  Brussels 02-242  36-04,  FRANCE:  Rueil  Malmaison  749-40-37,  GREECE:  Athens  642-1368,  ITALY:  Roma  805-647/872-457, 

THE  NETHERLANDS.  Poeldijk  01749-7640.  SPAIN:  Barcelona  204  17  43  SWEDEN:  Vallingby  08-380-370,  SWITZERLAND;  Mutschellen  057-54655,  UNITED  KINGDOM:  Bournemoulh  0202-293-1 15, 

WEST  GERMANY  Mijnchen  089-31881,  AUSTRALIA  &  NEW  ZEALAND  Melbourne  543-2077,  Meadowbank  808-1444,  Chermside  59-6436,  Wellington  64-4585,  Auckland  876-570,  CANADA: 

Dalamex.  Ltd  (Dislribulori  Dorval  514/636-9774,  Otiavia  613/224-1391,  Toronto  416/787-1208,  Vancouver  604/684-8525,  CENTRAL  &  SOUTH  AMERICA  &  CARIBBEAN:  (GAI  404/394-9603,  MEXICO: 

Monterrey  564-876,  FAR  EAST;  (CA)  213/382-1 107,  HONG  KONG  5-742211,  JAPAN;  Tokyo  402-8596,  TAIWAN:  Taipei  02-7026284,  MIDDLE  EAST;  IRAN;  Tehran  891143,  ISRAEL;  Tel  Aviv  266-291, 

KUWAIT;  Kuwait  438  180/1/2,  LEBANON;  Beirut  221731  2601 10,  SAUDI  ARABIA;  Jeddah  27790,  Ryadh  25083-39732,  UNITED  ARAB  EMIRATES;  Sharjah  24068 

For  sales  and  servrce  mother  countries  contact  ISC  headquarters  in  Norcross,  GA,,  U,S,A. 

Intelligent  Systems  Corp.  n  5965  Peacmree  comers  East  n  Norcross,  GA  30071  D  Telephone 404-449-5961  D  TWX  810-766-1581 


Circle  176  on  inquiry  card. 


BYTE  August  1979         13 


An  operation  which  builds  new  objects  is 
a  constructor. 


List 

Besides  decomposing  objects,  we  must  be  able  to  build 
new  objects.  The  general  name  for  an  operation  which 
builds  new  objects  is  a  constructor.  One  LISP  constructor 
is  LIST.  Here  are  some  examples  of  usage: 


yields: 


yields: 


(LIST  'A  'B  'O 


(A  B  C). 
(LIST  2  'B) 


(2B) 


Note  that  we  did  not  quote  the  2.  LISP  understands 
that  numbers  are  constants.  Also,  the  LIST  operation  will 
take  an  arbitrary  number  of  operands;  three  in  our  first 
example,  two  in  this  one,  and  none  in  the  next: 


yields: 


(LIST) 


(). 


t 


At  last. . . 
the  mechanical  Interface 

Turn  your  electric  typewriter  into  a  low 
cost,  high  quality  hard  copy  printer. 


^ 


30  Day  Delivery 
User  list 

5395°° 

Price    increase 
September  1st. 
Dealer    Inquiries 
Invited. 


<i^- 


O 


<^<>^°°' 

^>^' 
<^^ 


^c- 


The  all  new 

I/O  Pak  from 

Rochester  Data. 

Inc.  interfaces  the  keyboard 

of  any  commercially  available 

electric  typewriter  with  any 

computer.  The  result:  low  cost,  high 

quality  hard  copy. 

Write  today  lor  more  Information. 


Incorporated 
\!^  3100  Monroe  Avenue,  Rochester,  New  York  14618 


J 


As  with  the  other  instructions,  except  QUOTE,  LIST 
can  handle  instructions  as  operands. 
Try  to  determine  the  result  of: 

(LIST  (FIRST  (QUOTE  (A))) 
(REST  (QUOTE  (A  B)))  (QUOTE  C)). 

Diligence  may  have  been  rewarded  and  you  may  have 
responded  (A  (B)  C).  There's  an  equal  probability  that 
you  got  mired  in  parenthesis-counting  and  responded 
(  7  $  f  i).  One  solution  is  to  resort  to  M-LISP  and  recast 
the  expression  as:  listlfirstl(A)l:rest[(A  B)I;C1 

Since  we  should  develop  our  S-LISP  expertise,  we 
might  also  use  our  abbreviation:  (LIST  (FIRST  '(A)) 
(REST  '(A  B))  'O. 

A  more  general  technique  is  pretty-printing.  Pretty- 
printing  exploits  additional  lines  and  spaces  to  highlight 
the  structure  in  complex  expressions.  For  example: 

(LIST  (FIRST  (QUOTE  (A))) 
(REST  (QUOTE  (A  B))) 
(QUOTE  O) 


or: 


(LIST  (FIRST  '(A)) 
(REST  '(A  B)) 
'O 

In  a  modern  LISP  implementation  we  would  find  further 
aids  for  locating  matching  parentheses,  just  as  an  interac- 
tive Algol-like  language  should  have  aids  for  locating 
matching  begin-end  pairs. 


Concat 

Another  S-LISP  operation  for  building  lists  is 
CONCAT.  It  is  a  two-operand  instruction;  its  first 
operand  can  either  be  an  atom  or  a  list,  but  its  second 
operand  must  reference  a  list.  The  effect  of  CONCAT  is 
to  build  a  new  list  whose  first  element  is  the  first 
argument  of  the  CONCAT  and  the  remainder  of  the  new 
list  is  the  second  operand  of  CONCAT.  For  example 
(CONCAT  'A  '(B))  would  evaluate  to  (A  B). 

Note  that  LIST  takes  an  arbitrary  number  of 
arguments  and  builds  a  list  whose  elements  are  those 
arguments.  On  the  other  hand,  CONCAT  takes  only  two 
arguments,  an  element  and  a  list,  and  adds  the  element  to 
the  front  of  the  list.  For  example: 


gives: 


while: 


gives: 


(LIST  '(A)  -(O) 


((A)     (O) 


(CONCAT  '(A)  '(C)) 


((A)  C) 


14        August  1979  ©  BYT':  Pufalicalions  Inc 


Circle  326  on  Inquiry  card. 


what  makes  the  Microtek  Printer 
so  different?  Nothingl 


EXCEPT. , . . 


THE  PRICE:    $750  (with  parallel  interface) 
THE  PERFORMANCE: 


•  80  or  1  20  columns  (software  selectable) 

•  Plain  paper 

•  Pin  Feed 

•  Double  width  printing 

•  1  25  characters  per  second,  70  lines  per  minute 
nominal  throughput 

•  9x7  Matrix  (80  columns/line),  7x7  Matrix  (1  20 
columns/line) 


•  Vertical  Format  Unit 

•  96-character  ASCII  (upper  and  lower  case) 

•  Forms  width  continuously  adjustable  between 
4.5  inches  and  9.5  inches  (including  sprocket 
margins) 

•  Parallel  (Centronics  type)  interface  standard. 
Serial  (RS-232)  and  IEEE-488  interfaces 
available 


(714)  278-0633 


To:     MICROTEK,  Inc.,  7844  Convoy  Court,  San  Diego,  California  921 1 1 

D  Send  me  more  information. 
n   Send  me  a  printer  with: 

D     Parallel  interface  *?  $750.  D     Serialinterface  "^  $835.  D     IEEE-488  interface  @  $895 

n   Check  or  Money  Order  enclosed.  D   Ctiarge  my  VISA  card.  D   Charge  my  Master  Ctiarge  card. 


name  (please  print) 


card  number 


address 


cardholder's  signature 


city 


state 


zip 


exp  date 


phone 

Add  $1  5.00  for  packaging  &  shipping. 


Dealer  inquiries  invited. 


California  residents  add  6%  sales  tax. 


Circle  209  on  inquiry  card. 


BYTE  August  1979         IS 


Why  not 

kill  two  birds 

with  one  stone? 

If  you  have  an  Apple*  and  you  want  to  interface  it  with 
parallel  and  serial  devices,  we  have  a  board  for 
you  that  will  do  both.  It's  the  AIO.™ 

Serial  Interface. 

The  RS-232  standard  assures  maximum  compat- 
ibility with  a  variety  of  serial  devices.  For  ex- 
ample, with  the  AIO  you  can  connect  your  Apple* 
to  a  video  terminal  to  get  80  characters  per  line 
instead  of  40,  a  modem  to  use  time-sharing 
services,  or  a  printer  for  hard  copy.  The 
serial  interface  is  software  programmable, 
features  three  handshaking  lines,  and 
includes  a  rotary  switch  to  select  from 
7  standard  baud  rates.  On-board  firm- 
ware provides  a  powerful  driver 
routine  so  you  won't  need  to  write  any 
software  to  utilize  the  interface. 

Parallel  Interface. 

This  interface  can  be  used  to  connect  your 
Apple*  to  a  variety  of  parallel  printers.  The 
programmable  I/O  ports  have  enough  lines 
to  handle  two  printers  simultaneously  with 
handshaking  control.  The  users  manual 
includes  a  software  listing  for  controlling 
parallel  printers  or,  if  you  prefer,  a  par- 
allel driver  routine  is  available  in  firm- 
ware as  an  option.  And  printing  is 
only  one  application  for  this  general 
purpose  parallel  interface. 

Two  boards  In  one. 

The  AIO  is  the  only  board  on  the  market  that  can  interface  the  Apple 
to  both  serial  and  parallel  devices.  It  can  even  do  both  at  the  same 
time.  That's  the  kind  of  innovative  design  and  solid  value  that's  been 
going  into  SSM  products  since  the  beginning  of  personal  computing. 
The  price,  including  PROMs  and  cables,  is  $135  in  kit  form,  or  $175 
assembled  and  tested.  See  the  AIO  at  your  local  computer 
store  or  contact  us  for  more  information. 

2U6  Walsh  Avenue 

Santa  Qara,  California  95050 

(408)246-2707 


These  constructors  can  be  used  at  anytime  to  com- 
pose new  data  objects.  Now  we  can  decompose  lists 
and  make  new  ones.  We  can  perform  evaluation  of 
simple  expressions,  much  like  the  facilities  of  a  hand 
calculator.  Soon  we  will  show  how  to  add  new 
operations  to  the  LISP  calculator. 

Recognizers  and  Predicates 

In  traditional  assembly  language  programming 
we  find  instructions  which  test  for  zero  or  compare 
two  numbers.  In  LISP  we  manipulate  data  objects 
built  from  atoms  and  lists.  The  "zero"  of  lists  is  the 
empty  list,  ( );  and  so  we  include  a  test  for  ( ).  Since 
elements  of  a  list  can  either  be  atomic  or  lists 
themselves  we  include  a  test  for  "atomness",  atom. 
Finally,  we  must  be  able  to  distinguish  between  two 
nonidentical  atoms  using  an  equality  test. 

All  LISP  operations  compute  values.  The  values 
which  our  previous  operations  produced  were 
atoms  or  lists;  these  new  operations  called 
predicates  produce  "truth  values"  — true  or  false.  In 
M-LISP,  we  represent  true  and  false  as  t  and  /; 
however,  in  S-LISP,  these  truth  values  must  be 
represented  as  data  items,  so  we  pick  the  atoms  7 
and  NIL  as  their  representations: 

EQ:  Compare  two  atoms.  That  is,  £Q  is  a 

two-operand  instruction  which  gives 
value  T  just  in  case  those  operands 
represent  the  same  atom. 

ATONi:  This  single-operand  instruction  gives  T 
if  its  operand  is  an  atom,  and  gives  A//L 
otherwise. 

NULL:  This  single-operand  instruction  gives  T 
just  in  case  its  operand  is  the  empty  list, 

(;. 

For  example: 

S-LISP 

(ATOM  A)  gives  T 
(ATOM  '(A))  gives  ML 
(EQ  'A  'B)  gives  ML 
(NULL  '(A  B))  gives  ML 

M-LISP 

atomlAj  gives  f 
atoml(A)j  gives  / 
eqlA;BI  gives  / 
nullKA  B)l  gives  / 

Since  the  predicates  are  value-producing  they  can 
be  used  with  the  other  list-manipulating  operations: 

(CONCAT  (ATOM  A) 

(LIST  1  'A))  gives  (T  1  A) 

Notice  that  the  atom  predicate  is  of  slightly  dif- 
ferent character  than  eq  and  null  Namely,  atom  is 
performing  a  "type  test"  on  a  data  structure;  such 
predicates  are  called  recognizers. 

Text  continued  on  page  118 


Circle  335  on  inquiry  card. 


Circle  9  on  inquiry  card.' 


Howtoiwy 
personal  con^uter. 


In  California,  a  store  owner  charts  sales  on  his  Apple 
Computer.  On  weekends  though,  he  totes  Apple  home  to  help 
plan  family  finances  with  his  wife.  And  for  the  kids  to  explore 
the  new  world  of  personal  computers. 

A  hobbyist  in  Michigan  starts  a  local  Apple 
g   Computer  Club,  to  challenge  other  members 
€Jl    ^°  computer  games  of  skill  and  to 
^%^    trade  programs. 

^^         Innovative  folks  everywhere 
,  have  discovered  that  the  era  of  the 

;       personal  computer  has  already 
begun — with  Apple. 
Educators  and  students  use  Apple 
in  the  classroom.  Businessmen  trust 
Apple  with  the  books.  Parents  are 
making  Apple  the  newest  family  pastime.  And  kids  of  all 
ages  are  learning  how  much  fun  computers  can  be. 
Circle  9  on  inquiry  card. 

>lsit  your  local  computer  store 

The  excitement  starts  in  your  local  computer  store.  It's 


a  friendly  place,  owned  by  one  of  your  neighbors.  He'll  show 
you  exactly  what  you  can  use  a  personal  computer  for. 

What  to  look  for 

Your  neighborhood  computer  store  has  several 
different  brands  to  show  you.  Chances  are  the  salesman  will 
recommend  an  Apple  Computer.  Apple's  the  one  you  can 
program  yourself.  So  there's  no  limit  to  the  things  you  can 
do.  The  more  you  use  your  Apple  the  more  uses  you'll 
discover  So  it's  important  that  Apple  is  the  computer  with 
more  expansion  capability.  You  can't  outgrow  Apple. 

It's  your  move 

Grab  a  piece  of  the  future  for  yourself — we'll  give 
you  the  address  of  the  Apple  dealer  nearest  you  when 
you  call  our  toll-free  number.  Then  drop  by  ot 

and  sink  your  teeth  into  an  Apple.  j>Nff.C 

(800)538-9696.  --"OIV*^ 

In  California, 
(800)  662-9238. 


LISP  Based  Systems  for  Education 


J  Laubsch,  G  Fischer,  and  H  D  Bocker 

Institute  for  Information 

University  of  Stuttgart 

Stuttgart,  GERMANY 


Future  Computer  Culture 

There  is  sufficient  evidence  that  personal  computer 
systems  will  become  as  powerful  as  today's  computer 
systems  used  in  artificial  intelligence  research.  Within  the 
artificial  intelligence  community  people  are  concerned 
about  possible  uses  of  computers  in  an  evolving  com- 
puter culture.  The  basic  goals  of  artificial  intelligence  are 
to: 

•  synthesize  systems  that  behave  intelligently; 

•  understand  intelligence  in  terms  of  computational 
concepts. 

The  human  needs  a  personal  computer  system  will  one 
day  help  to  satisfy  cover  the  range  of  playing,  learning, 
recreation,  artistic  creation,  and  personal  assistance  to 
expand  one's  own  memory  and  reasoning  power.  Using  a 
computer  to  build  an  intelligent  tutor  and  an  educational 
environment  that  stimulates  learning  by  discovery  (ie: 
through  simulation,  exploratory  problem  solving)  are  of 
central  importance  to  artificial  intelligence.  Although 
canned  software  for  educational  applications  will  be 
widely  available  there  remains  a  need  for  programming 
to  tailor  the  system  to  the  user's  individual  needs  and 
requirements. 

Our  notion  of  what  programming  is  all  about  will 
drastically  change:  it  will  cover  a  wide  range  of  possible 
relationships  between  man  and  machine  where  a  person 
creates  and  manipulates  dynamic  information  structures 
according  to  personal  tasks  and  taste.  Program  writing, 
in  the  historical  sense  of  writing  individual  statements,  is 
just  one  aspect  of  using  a  computer  and  will  become  less 
relevant,  if  not  obsolete,  compared  to  the  understanding 
and  modification  of  prefabricated  software  components. 

LISP  Based  Systems 

Historically,  LISP  has  been  used  as  the  basic  tool  of  ar- 
tificial intelligence  since  the  computational  ideas  embed- 
ded in  it,  together  with  the  program  development  system 
built  around  the  language,  lend  themselves  most  natural- 
ly to  the  design  of  complex  systems. 

The  design  of  LISP  systems  has  been  guided  by  an  em- 


phasis on  supporting  the  user  to  solve  complex,  ill- 
structured,  poorly  understood  problems  at  already  early 
stages  (eg:  problem  formulation,  approximations  to  the 
final  solution,  support  of  debugging  and  program  modi- 
fication), rather  than  only  the  final  step  of  coding  a  well 
understood  problem  or  an  already  known  algorithm  in  a 
given  programming  language.  Program  constructs  and 
programming  methodology  in  the  LISP  culture  were  par- 
ticularly concerned  with  cognitive  efficiency  (ie:  to  make 
programs  understandable  by  humans).  It  was  one  of  the 
gratifying  results  of  this  work  that  these  programs,  with 
the  help  of  program  transformation  systems,  can  also  be 
proved  correct  and  run  efficiently. 

Designing  a  Personal  Information  System 

Suppose  you  want  to  design  a  personal  notebook  con- 
taining people's  names,  addresses,  interests,  programs 
they  use,  messages  you  are  sending  them,  appointments 
you  make  with  them,  etc.  Such  a  system  will  consist  of 
frequently  changing  information  structures.  As  a  per- 
sonal information  system  it  should  model  and  extend  that 
information  system  in  our  head.  By  using  the  system,  we 
will  feel  the  need  for  new  features  that  should  be  incor- 
porated (ie:  an  easy  to  learn  command  language  or  an  in- 
structional help  facility  to  introduce  a  new  user).  A  more 
advanced  version  of  the  system  should  be  able  to  perform 
simple  deductions.  For  instance,  if  we  tell  the  system  at 
some  point  of  time,  "My  friend  Jim  has  moved  to  San 
Francisco"  and  later  ask  it  to,  "List  all  friends  in  Cali- 
fornia," Jim  should  be  included  in  the  set.  Eventually  this 
system  could  "grow  up"  to  become  a  personal  assistant. 

We  will  show  that  the  computational  ideas  of  LISP,  as 
developed  in  the  artificial  intelligence  community,  are 
particularly  well-suited  for  this  kind  of  application. 

Basic  Computational  Ideas 

We  list  those  ideas  which  are  relevant  to  the  design  of 
complex  programs  and  transcend  the  capabilities  of  other 
languages  and  systems.  In  almost  all  interesting  educa- 
tional applications  of  computers,  complex  programs  will 
be  involved: 


18        August  1979  ©  BYTE  Publications  Inc 


•  Incremental  design.  E  Sandewall  feels  that  inter- 
active middle-out  programming  (besides  top-down 
and  bottom-up  approaches)  is  a  natural  way  to 
build  a  complex  system  in  a  process  of  structured 
growth.  We  construct  a  simple  version  of  the 
system,  try  it  out,  identify  our  misunderstandings 
and  debug  it.  This  knowledge,  and  our  critique,  will 
lead  to  modified  specifications,  and  a  new  cycle  of 
exploratory  programming  begins.  Since  LISP  sys- 
tems are  incremental,  old  modules  may  be  modified 
and  new  building  blocks  can  be  added  with  an  im- 
mediate effect.  The  compilation  of  fully  debugged 
code  is  available  as  an  optional  feature. 

•  Complex  dynamic  data-structures.  Most  informa- 
tion processing  models  and  problems  to  be  solved 
with  the  computer  will  deal  with  complex  dynamic 
structures  like  lists,  trees,  nets,  property  lists,  etc, 
and  will  not  be  based  only  on  numbers  and  strings. 
In  our  above  example,  the  information  associated 
with  a  person  could  be  represented  in  a  natural  way 
as  the  linked  structure  in  figure  1.  It  should  be  easy 
to  include  new  attributes  or  provide  for  a  business 
as  well  as  a  home  address. 

We  define  data  structures  abstractly  through 
functions:  constructors  to  build  a  datum;  selectors 
to  extract  an  attribute,  and  predicates  to  examine 
the  type  of  a  data  structure.  Including  other 
representations,  such  as  graphics,  is  easy  since  most 
LISP  systems  contain  a  higher  level  assembly 
language  that  gives  access  to  the  machine  level. 

•  Data-program  equivalence.  A  typical  strategy  to 
attack  problems  in  artificial  intelligence  is  to  define 
layers  of  languages,  each  suited  to  a  particular 
level  of  abstraction  (eg:  <user  interface 
language  >  —  <  interim  language  1>  —  .  .  .  ^LISP). 
The  definition  of  LISP  itself,  as  stated  by  John 


List  All  Friends  in  California 

(FOR  ALL  X  IN  (GET/FILE  FRIENDS) 
(IF  (GET/STATE  X):CALIFORNIA 

THEN  (PRINTOUT  (GET/NAME  X)))) 

4J^ 

User  Input 
Translation 

Evaluation 
System  Output 

List  of 
Addresses 

Table  1:  A  typical  problem  approach  may  be  to  take  a  user  com- 
mand and  translate  it  into  program  instructions.  These  program 
instructions  are  then  executed  by  the  computer.  This  is  an  exam- 
ple of  taking  a  high  level  user  language  and  converting  it  into 
efficient  machine  language. 


McCarthy,  provides  a  good  model  for  this  ap- 
proach, since  most  of  a  LISP  system  is  itself  written 
in  LISP,  except  for  a  handful  of  primitive  functions. 
For  example,  the  user's  command  is  translated  into 
a  program  and  then  evaluated  as  in  table  1. 

LISP  facilitates  this  approach  since  the  function 
EVAL  lets  the  user  evaluate  any  data  as  a  program! 
The  inverse  is  also  true;  it  is  quite  easy  to  write  pro- 
grams which  manipulate  other  programs  as  if  they 
were  data. 

•  Pattern  matching  and  data  driven  programming. 
The  system  should  respond  to  situations  where  the 
order  in  which  certain  actions  are  to  be  taken  is  not 
specified  in  advance.  Furthermore,  in  many  situa- 
tions it  will  be  impractical  to  specify  a  question 
literally:  we  might  have  to  leave  slots  open  which 
can  be  filled  in  by  the  system,  using  the  knowledge 
contained  in  its  data  base.  In  our  example,  many 
other  types  of  requests  are  possible.  To  translate 
them,  patterns  to  decompose  and  recompose  them 
can  be  defined. 


NAME 


1 


INTERESTS 

-         - 

LISP 



Figure  1:  An  example  of  a  linked  list.  This  form  of  linked  list  is  called  a  singly  linked  list.  In  a  singly  linked  list,  the  user  can  only 
move  in  one  direction,  forward  in  the  direction  of  the  arrow.  In  a  doubly  linked  list,  the  user  can  retrace  the  steps  taken  to  arrive  at 
the  present  location. 


August  1979  ©  BYTE  Publications  Inc        19 


Pattern  languages  like  these  are  easy  to  imple- 
ment in  LISP  (see  Winston,  Bocker  and  Fischer,  and 
Kornfeld's  article  in  this  issue).  Constructs  con- 
sisting of  condition  action  pairs  form  the  basis  of 
production  systems  as  described  by  Newell  and 
Simon.  Procedure  calls  are  triggered  (and  thus,  data 
structures  are  manipulated)  by  the  global  state  of  a 
world  (ie:  the  data/knowledge  available)  and  not 
according  to  a  predefined  calling  structure. 

•  Property  lists.  Property  list-like  structures  form  the 
basis  of  an  associative  memory.  They  were  deve- 
loped in  list  processing  languages  (eg:  IPL-V  and 
LISP)  and  have  been  generally  (ie:  in  many  pro- 
gramming languages)  accepted  as  constructs  which 
are  conceptually  easy  to  handle. 

They  allow  procedures  to  be  linked  to  data  items 
and  evaluated  depending  on  the  current  state  of  the 
system.  For  example,  to  update  the  address  of  Jim 
we  may  write: 

(APPLY  (GET  JIM  UPDATE/ADDRESS)  (READ)) 

The  first  argument  of  APPLY  is  an  address  updating 
function,  which  is  stored  on  the  property  list  of  JIM 
under  the  property  UPDATE/ADDRESS.  The  se- 
cond argument  of  APPLY  is  the  argument  the  up- 
date function  will  become  applied  to.  In  our  exam- 
ple these  data  will  be  requested  from  the  user 
through  the  function  READ. 


The  educational  value  of  these  ideas  is  that  they 
provide  powerful  ideas  for  the  personal  computer 
user  who  wants  to  shape  a  reactive  environment  to 
his  needs. 

LOGO  Based  Learning  Environments 

LOGO  is,  up  to  surface  structure,  more  or  less 
equivalent  to  LISP.  LOGO  as  a  programming  language 
(developed  by  W  Feurzeig  and  S  Papert)  was  designed 
and  developed  to  form  the  basis  for  learning  environ- 
ments in  which  the  student  taking  an  active  role  can  learn 
about  computers  and  use  them  to  investigate  issues  in 
education  and  cognitive  psychology.  The  LOGO  system 
supports  two  different  (by  no  means  disjoint)  environ- 
ments: the  Turtle,  Graphics  and  Musicbox  world  (ie: 
peripheral  devices  which  are  controlled  by  a  command 
language)  and  the  LISP  world.  A  well-engineered  pro- 
gramming environment,  based  on  an  LSI-11,  is  commer- 
cially available  as  a  stand  alone,  personal  computing 
system.  It  integrates  the  language  processor,  editor, 
tracer,  debugger,  file  management,  document  facilities 
and  text  processing  into  one  system  (comparable  efforts 
to  build  similar  systems  around  Pascal  are  still  in  their 
infancy). 

LOGO  projects  working  on  computers  and  education 
can  be  found  in  many  places  around  the  world.  We  brief- 
ly summarize  the  experiences  we  gathered  in  our  project 
in  Darmstadt  (see  also  Fischer): 

•  Basic  computational  ideas  like  recursion,  the  con- 


/T 


K 


G.  W.  COMPUTERS  LTD. 

This  is  how  your  business  appears  on  the  screen 

Approximately  60-100  entries/inputs  require  only  2-4  hours 
weekly  and  your  entire  business  is  under  control. 

♦PROGRAMS  ARE  INTEGRATED  -  SELECT  FUNCTION  BY  NUMBER 


=\ 


01  =  ENTER  NAMES/ADDRESS,  ETC  13  = 

02  =  *ENTER/PRINT  INVOICES  14  = 
03=*ENTER  PURCHASES  15= 

04  =  *ENTER  A/C  RECEIVABLES  16  = 

05  =  *ENTER  A/C  PAYAI3LES  17  = 
06=ENTER/UPDATE  INVENTORY  18  = 

07  =  ENTER/UPDATE  ORDERS  19  = 

08  =  ENTER/UPDATE  BANKS  20  = 

09  =  EXAMINE/MONITOR  SALES  LEDGER  21  = 
10=EXAMINE/MONITOR  PURCHASE  LEDGER  22  = 

11  =  EXAMINE/PRINT  INCOMPLETE  RECORDS  23  = 

12  =  EXAMINE  PRODUCT  SALES  24  = 

WHICH  ONt?  (bNTER1-24) 

ttich  program  goes  to  sub  menu,  e.g.: 
(9)  allows.  A,    LIST  ALL  SALES;  R,   MONITOR  SAI.l  S  HY  STOCK  CODES; 
C,    RFTRIf.VE  INVOICI:  Dl  TAILS;  D.   AMEND  LEDGER  FILES; 
t,   LIST  TOTAL  ALL  SALES. 

Think  of  the  possibilities  and  add  to  those  here  if  you  wish. 

Price  for  current  package  Version  1  is  $.550,  or  Version  2  [including  aged  debtors  analysis,  etc.)  is  %7^{).  or  full  listing,  $.100. 

All  programs  in  BASIC  for  SWTP  6800  and  Pet  16/32K  Systems   Package  includes  11  programs. 


PRINT  CUSTOMER  STATEMENT 

PRINT  SUPPLIER  STATEMENTS 

PRINT  AGENT  STATEMENTS 

PRINT  TAX  STATEMENTS 

PRINT  WEEK/MONTH  SALES 

PRINT  WEEK/MONTH  PURCHASES 

PRINT  YEAR  AUDIT 

PRINT  PROEIT/LOSS  ACCOUNT 

UPDATE  END  MONTH  EILES 

PRINT  CASH  ELOW  EORECAST 

ENTER/UPDATE  PAYROLL  {NOT  YET  AVAILABLE) 

RETURN  TO  BASIC 


confacL      Tony  Winter  on  01-636-8210 
21  B  Dryden  Chambers 
119  Oxford  Street 
London  W1,  UK 


circle  153  on  inquiry  card. 


J 


20       August  1979  ©  BYTE  Publications  Inc 


Circle  285  on  inquiry  card. 


North  Star  Announces  — 

Double  Density  x  2  Sides  =  Quad  Capacity! 

The  North  Star  Horizon  now  delivers  quad  capacity  by  using  two-sided 
recording  on  our  new  mini  drives!  That's  360,000  bytes  per  disl<ettel  A  four 
drive  North  Star  system  accesses  over  14  megabytes  of  information  on-iine! 
Thinl<  of  the  application  flexibility  that  so  much  information  storage  can 
give  you  I 

North  Star  has  quadrupled  the  dlsl<  capacity  of  the  Horizon  computer  but 
prices  have  increased  a  modest  15  percent.  On  a  dollar  per  byte  basis, 
that's  a  bargain  that  is  hard  to  beat! 

The  proven  North  Star  disl<  controller  was  originally  designed  to 
accommodate  the  two-sided  drives.  North  Star  DOS  and  BASIC  are 
upgraded  to  handle  the  new  capacity,  yet  still  run  existing  programs  with 
little  or  no  change.  Of  course,  single  sided  disl<ettes  are  compatible  with  the 
new  disk  system. 


Get  both  sides  now!  Quad  capacity 
is  available  from  your  North  Star 
dealer. 


NorthSfraf 


.^ 


North  Star  Computers 

1440  Fourth  Street 

Berkeley,  CA  94710 

(4 1 5)  527-6950  TWX/Telex  9 1 0-366-700 1 


d 


•ilfjtA»1»AKKK«IS:i*K:VM.:cV'Ki:;3 


NortriSfcif- 


TRADITIONAL    APPROACH 


LOGO   APPROACH 


MATHEMATICS 


APL 


PASCAL 


Figure  2:  Two  different  approaches  to  bridging  the  gap  between  natural  language  and  the  formal  symbols  of  programming 
languages  are  represented.  The  traditional  approach  links  everything  closely  with  mathematics  and  uses  mathematics  as  the  bridge, 
In  the  authors'  approach,  the  LOGO  language  is  used  as  the  bridge  since  it  can  be  used  to  develop  reasoning  powers  without  having 
to  become  involved  with  the  language  of  mathematics. 


cept  of  an  interpreter,  list  processing  and  those 
mentioned  above  can  be  naturally  integrated  into 
interesting  projects,  caused  no  difficulties  for 
students  to  understand,  and  can  be  considered  as 
powerful  in  the  sense  that  they  are  widely  appli- 
cable (even  in  problem  solving  situations  without 
the  computer). 

•  Graphic  devices,  music  box,  etc,  provide  strong 
motivational  support,  excellent  entry  points  to  ex- 
plore the  world  of  computation  because  early  suc- 
cess is  possible  and  interaction  with  the  machine  is 
based  on  observable  and  intuitively  understandable 
events. 


medium  to  test  one's  own  understanding  of  con- 
cepts and  of  poorly  understood  systems  (ie:  if  we 
really  understand  something,  we  can  write  a  com- 
puter program  that  will  do  it). 

•  Group  projects  are  easy  to  realize  since  the  program 
development  system  supports  the  organization  of 
modules  as  building  blocks.  In  our  example  of  a 
personal  information  system,  one  person  could 
write  the  module  to  translate  inputs  into  an  internal 
representation,  another  person  may  write  a  deduc- 
tive component  and  a  third  person  could  deal  with 
the  problem  of  how  to  answer  requests  or  questions 
from  the  user. 


•  Our  experiences,  especially  with  young  students, 
indicate  that  programming  in  LOGO  may  serve  as  a 
bridge  between  natural  language  communication 
and  reasoning  and  the  formal  and  abstract  symbols 
and  reasoning  in  mathematics  and  programming 
languages.  The  findings  differ  greatly  from  the 
traditional  approaches  where  computer  scientists 
try  to  keep  things  linked  as  closely  as  possible  to 
mathematics,  assuming  that  mathematics  could 
serve  as  a  bridge  to  programming  (which  we  all 
know  is  questionable  because  most  people  are  more 
alienated  by  mathematics  than  attracted).  Figure  2 
illustrates  the  two  different  approaches. 

Our  findings  can  at  least  be  partly  explained  by 
the  cleanliness  by  which  the  basic  computational 
ideas  are  embodied  in  LISP /LOGO. 


•  Our  programming  methodology  differed  in  an 
essential  way  from  other  approaches.  Procedures, 
including  parameters  and  recursion  as  basic  control 
structures,  were  introduced  long  before  the  concept 
of  a  variable  was  mentioned.  These  two  aspects  are 
not  independent  of  each  other.  They  basically  intro- 
duce the  learner  to  "pure  LISP"  (ie:  a  version  of 
LISP  without  variables)  and  avoid  the  problems 
associated  with  side-effects  and  global  variables. 

•  Our  empirical  evidence  indicates  that  learning  other 
programming  languages  (eg:  BASIC,  Pascal)  after 
having  learned  LOGO  was  easy  because  constructs 
in  these  languages  could  be  easily  mapped  into 
known  concepts,  whereas  this  statement  does  not 
hold  in  the  other  direction. 


•  Our  programming  environment  stimulates  learning 
by  discovery.  New  concepts  are  discovered  by  solv- 
ing a  problem  through  incremental  writing  and 
debugging  of  programs.  The  computer  serves  as  a 


Intelligent  Computer  Assisted  Instruction 

Despite  our  belief  that  the  most  important  impact  of 
computers  for  educational  applications  will  be  the  active 
independent  use  described  in  the  previous  section  (the 


22        August  1979  ©  BYTE  Publications  Inc 


Graphics  for  small  systems 
were  too  expensive... 

TM         Until  Now 


digital  plotters 


The  perfect  small  system  output  device 

•  Displays  data  In  easy  to  read  graphical 
format 

•  Bothi  serial  and  parallel  Inputs  built-in 

•  Uses  standard  8V2"  x  11"  paper 

•  Plotting  speed  up  to  2.4  Ips 

•  Resolution  of  botti  0.01  and  0.005  in. 

•  Baud  rate  and  step  size  easily  changed 

•  Completely  assembled  and  ready  to  use 

•  Priced  at  $1085* 


AlPM 


TM 


digitizers 


The  perfect  small  system  input  device 

•  Resolution  and  repeatability  of  0.005  In. 

•  Origin  is  completely  relocatable 

•  RS232C  and  8  bit  parallel  Interface  se- 
lectable at  the  connector 

•  Accuracies  of  ±0.015  in.  (0.4mm) 

•  Optional  LG  display  shows 

actual  values  being  Inputted 

•  Digitizing  surface  11"  x  11" 

•  Priced  at  $795* 


11 


'^ 


ii, 


•U.S.  Domestic  Price  Only 

TM  Trademark  of  Houston  Instrument 


For  rush  literature  requests 

or  local  sales  office  Information  only, 

persons  outside  Texas  call  toll  free  1-800-531-5205. 


liousl:oii 

insTrument 

ONE  HOUSTON  SQUARE 
(512)  837-2820 

"the  graphics  -  recorder  company" 
EUROPEAN  OFFICE 


DIVISION    OF    BAU8CH  &  LOMB  (^ 

AUSTIN,  TEXAS  78753 
TWX  910-881-2022 


Rochesterlaan  6  8240  GIstel  Belgium 
Phone  059/277445  Telex  Bausch  81399 


Circle  172  on  Inquiry  card. 


BYTE  August  1979        23 


student  teaches  the  computer),  we  do  not  overlook  the 
rich  potential  of  using  intelligent  programs  to  teach  the 
student  certain  subjects,  to  involve  and  tutor  him  in  game 
playing  situations,  and  to  diagnose  his  difficulties. 

The  traditional  computer  aided  instruction  was 
modelled  on  a  reduced  view  of  learning:  present  a 
stimulus  item  to  the  learner,  receive  a  response  and  give  a 
reinforcement.  More  advanced  programs  select  the 
material  to  be  presented  according  to  how  well  the  stu- 
dent is  doing,  or  give  him  a  possibility  to  select  the  parti- 
cular topic  he  wants  to  study  or  practice.  From  a  more 
comprehensive  view  of  learning,  it  is  essential  to  diagnose 
the  learner's  cognitive  development  and  support  him 
through  a  tutor  who  is  himself  an  expert  in  the  problem 
and  can  infer  the  conceptual  difficulties  this  learner  may 
encounter.  A  prototype  is  the  Buggy  program  written  by 
artificial  intelligence  researchers  J  Brown  and  R  Burton, 
which  goes  far  beyond  traditional  computer  aided  in- 
struction programs  by  integrating  artificial  intelligence 
techniques  and  cognitive  theories  about  learning, 
teaching  and  debugging. 

Buggy  relies  on  the  basic  pedagogical  assumption, 
which  was  verified  through  extensive  empirical  findings, 
that  students  give  wrong  and  arbitrary  answers  in  only  a 
few  cases  but  tend,  rather,  to  answer  a  different  question 
or  compute  a  result  according  to  a  different  algorithm. 
They  behave,  in  many  cases,  with  absolute  consistency 
with  respect  to  their  own  theories.  To  provide  real  help, 
the  teachers  have  to  deduce  the  underlying  misunderstan- 
ding (ie:  the  deep  structure)  from  scarce  observations  on 
the  surface.  Buggy  is  a  program  which  does  this  for  sim- 
ple arithmetic  skills.  The  knowledge  to  draw  an  inductive 
inference  is  stored  in  a  diagnostic  model,  which  tries  to 
capture  possible  deviations  from  the  correct  way  of  doing 
the  task. 

Another  example  that  uses  a  diagnostic  model  is  the 
Wumpus  advisor  (called  Wusor  II),  which  teaches  in- 
ference strategies  in  the  Wumpus  game  created  by 
Gregory  Yob.  The  program  teaches  the  knowledge  of  an 
expert  player  by  tailoring  its  advice  and  explanations  to 
its  current  estimation  of  the  player's  knowledge.  These 
programs  may  serve  as  prototypes  of  intelligent  tutoring 
programs  to  teach  the  playing  of  games. 

A  different  approach  in  intelligent  computer  aided  in- 
struction does  not  include  an  expert  tutor,  but  is  guided 
by  the  philosophy  of  creating  a  simulated  environment 
which  the  user  is  free  to  explore  at  will.  The  discovery  of 
this  environment  leads  to  the  acquisition  of  new  skills 
and  knowledge.  Prototypes  of  such  systems  are:  Scholar, 
a  question  answering  system  to  learn  about  geography  in 
a  mixed  initiative  dialogue  (Carbonell);  Sophie,  a  system 
to  teach  electronic  trouble-shooting  (Brown,  Burton, 
Bell);  and  the  Logic  program  developed  at  Stanford  (Sup- 
pes).  What  makes  these  programs  appear  to  behave  in- 
telligently is  the  fact  that  the  knowledge  they  teach  is  us- 
ed by  these  systems  in  many  ways  to  carry  out  dialogues 
(for  an  overview  see  Laubsch). 

A  crucial  component  of  friendly,  intelligent,  computer 
aided  instruction  systems  is  natural  language  (eg:  the 
Sophie  system).  Rapid  advances  in  artificial  intelligence 
make  it  seem  likely  that  natural  language  interfaces  will 
be  available  for  many  applications  of  interest  to  the 
general  public. 


It  is  not  possible  to  explain  the  details  of  these  pro- 
grams here  down  to  an  implementation  level,  because 
these  systems  are  large  and  complex  as  compared  to  cur- 
rent standards.  The  historical  evidence  may  suffice  to 
show  that  all  these  systems  have  been  implemented  in 
large  sophisticated  LISP  systems  (eg:  InterLISP)  which 
have  matured  over  more  than  a  decade  to  support  the 
development  of  systems  of  this  size. 

Conclusions 

LISP  remains  a  tool  in  artificial  intelligence  and  educa- 
tional research,  even  though  it  has  contributed  greatly  to 
our  understanding  of  computational  issues  and  their 
relevance  to  intelligent  behavior. 

We  do  not  want  to  give  the  impression  that  all  inter- 
esting uses  of  computers  are  centered  around  LISP.  Some 
of  the  most  innovative  work  was  done  by  the  Learning 
Research  Group  at  Xerox  Research  Center  in  their 
development  of  the  Dynabook  and  the  Smalltalk 
language. 

The  real  issues  remain  and  pose  many  research  pro- 
blems for  the  years  to  come:  to  create  cognitive  theories; 
to  create  a  science  of  intelligence,  and  to  apply  it  suc- 
cessfully to  the  problems  of  education.  ■ 

Bibliography 

1.  BOCKER,  H  D,  and  FISCHER,  G,  Interaktives  Problemlosen  mit 
Computerhilfe:  Problemaufgaben,  Forschungsgruppe  CUU, 
Darmstadt,  1978. 

2.  BROWN,  J  S,  BURTON,  R  R,  and  BELL,  A  G,  "Sophie:  A  Step 
Toward  Creating  a  Reactive  Learning  Environment,"  Interna- 
tional Journal  of  Man-Machine  Studies,  volume  7,  1975,  pages 
675  thru  696. 

3.  BROWN,  J,  and  BURTON,  R,  "Diagnostic  Models  for  Procedural 
Bugs  in  Basic  Mattiematical  Skills,"  Cognitive  Science,  volume 
2,  1978,  pages  155  thru  191, 

4.  CARBONELL,  J  R,  "Al  in  CAI:  An  Artificial  Approach  to 
Computer-aided  Instruction,"  IEEE  Transactions  on  Man- 
Machine  Systems,  volume  MMS-II,  number  4,  1970. 

5.  CARR,  B,  WUSOR  II:  A  Computer  Aided  Instruction  Program 
with  Student  Modelling  Capabilities,  Al-Memo  417.  MIT  Artificial 
Intelligence  Lab,  Cambridge  MA,  1977. 

6.  FISCHER,  G,  "Das  Losen  komplexer  Problemaufgaben  durch 
naive  Benutzer  mit  Hilfe  des  interaktiven  Programmierens," 
Forschungsgruppe  CUU,  Darmstadt,  1977. 

7.  FEUERZEIG,  W  (editor).  Programming  Languages  as  a  Concep- 
tual Framework  for  Teaching  Mathematics,  BBN  Report 
Number  2165,  Cambridge  MA,  1971. 

8.  General  Turtle  Corporation,  120  Boulevard  Industriel,  Boucher- 
ville  Ouebec,  34B  2X2  CANADA. 

9.  KAY,  A,  "Microelectronics  and  the  Personal  Computer,"  Scien- 
tific American,  September  1977,  pages  231  thru  244. 

10.  LAUBSCH,  J,  "Artificial  Intelligence  Methoden  im  CUU,"  K 
Brunnstein  et  al  (editors).  Lecture  Notes  in  Computer  Science, 
volume  17,  Springer  Verlag,  Berlin,  1974,  pages  385  thru  393. 

11.  McCarthy,  J,  "A  Mlcromanual  for  LISP— not  the  Whole 
Truth,"  SIGPLAN  Notices,  volume  13,  number  8,  August  1978, 
pages  215  thru  216. 

12.  PAPERT,  S,  "Uses  of  Technology  to  Enhance  Education,"  Logo 
Memo  8,  MIT  Artificial  Intelligence  Lab,  Cambridge  MA,  1973. 

13.  SANDEWALL,  E,  "Programming  in  the  Interactive  Environment: 
The  LISP  Experience,"  ACM  Computing  Survey,  volume  10, 
number  1,  1978,  pages  35  thru  72. 

14.  SUPPES,  P,  SMITH,  R,  and  BEARD,  M,  University  Level  Com- 
puter assisted  Instruction  at  Stanford,  TR  number  265,  IMSS, 
Stanford  University,  Stanford  CA,  1975. 

15.  WINSTON,  P,  Artificial  Intelligence,  Addison  Wesley,  Reading 
MA,  1977. 

16.  YOB,  G,  "Hunt  the  Wumpus,"  Creative  Computing,  September 
and  October,  1975,  pages  51  thru  54. 


24        Aususl  1979  &  BYTE  Publications  Inc 


SYBEX 


LEADER   IN 

COMPUTER  EDUCATION 


■'■'■■■    -■■     SYBEX.    INC. 

2020  Milvia  Street 

Berkeley,  California 

94704 


D    PROGRAMMING  THE   Z80,   rel  C280,   by   Rodnay   Zaks,   330   pp $1 1 ,95 

□    PROGRAMMING  THE   6502,   ref  C202,   by   Rodnay   Zaks,    350   pp.    (2nd   Edition) $11.95 

U    6502   APPLICATIONS   BOOK,   ref  D302,   by   Rodnay   Zaks,    288   pp $12.95 

U    MICROPROCESSOR   INTERFACING   TECHNIQUES,   ref  C207,   by   Rodnay   Zaks,    420   pp $14  95 

D   AN   INTRODUCTION   TO   PERSONAL  AND   BUSINESS   COMPUTING,   ref  C200,   by   Rodnay   Zaks,    250   pp.    $6  95 

U   MICROPROCESSORS-FROM  CHIPS  TO  SYSTEMS,  ref  C201,  by   Rodnay  Zaks,    420  pp $9.95 

U    FREE   DETAILED   CATALOGUE 


TO  ORDER: 

By    Phono:(415)    848-8233.     Visa,     Maslercharge, 

American    Express. 
By   Mall:   Check    books  above.    Include    payment. 
Shipping:    Add    $1.50    per    book    (UPS),    or    75c 

(4th    class-   allow   4   weeks). 
Tax:    In    California,    add    tax. 


NAME 

COMPANY 
ADDRESS    _ 
CITY 


.STATE. 


.ZIP, 


n  Charge    my:    D  Visa  D  Mastercharge  D  American    Express 

Number Exp.    Date, 

Signature  


Circle  358  on  inquiry  card. 


BYTE  Aususl  1979         25 


The  Lambdino  Storage 
Management  System 


Gianfranco  Prini 

Instituto  di  Scienze  dell'Informazione 

Universita'  di  Pisa 

Corsa  Italia  4(X 
1-56100  Pisa  ITALY 


Martin  Rudalics 

Institut  fuer  Mathematik 

Johannes  Kepler  Universitaet  Linz 

A-4045  Linz/Auhof  AUSTRIA 

Lambdino  is  a  statically  scoped  dialect  of  LISP  (see 
glossary  for  definitions).  The  name  Lambdino  is  a  com- 
bination of  lambda,  Landin,  and  ino,  where  lambda 
stands  for  itself,  Landin  refers  to  a  person,  and  ino  is  an 
Italian  suffix  for  small.  The  reference  to  Peter  Landin  is 
due  to  the  fact  that  he  designed  the  first  statically  scoped 
applicative  language  based  on  the  interpretive  philo- 
sophy of  LISP  (as  described  in  his  paper  entitled  "The 
Mechanical  Evaluation  of  Expressions").  Other 
predecessors  of  Lambdino  include  the  anonymous  lan- 
guage used  by  Reynolds  in  his  work  Definitional  Inter- 
preters for  Higher-Order  Programming  Languages  and  in 
Scheme  as  described  by  G  Sussman  and  G  Steele. 

A  detailed  description  of  Lambdino  and  the  problems 
posed  by  its  implementation  are  beyond  the  scope  of  this 
paper.  Here  we  only  want  to  sketch  some  ideas  on  which 
we  have  based  its  storage  management  system.  Thus 
LISP  or  Scheme  may  be  substituted  for  Lambdino 
throughout  this  paper. 

An  explicit  design  goal  of  Lambdino  is  its  transport- 
ability onto  a  wide  class  of  computers,  including 
microcomputers.  Particular  care  has  been  put  into  the 
development  of  the  Lambdino  storage  management 
system  in  order  to  fit  the  space  and  time  constraints  of 
microcomputers.  A  machine  independent  version  of 
Lambdino,  implemented  in  MagmaLISP,  has  been  rea- 
lized and  will  be  bootstrapped  in  the  near  future  on 
several  machines,  including  an  IBM  System/370  Model 
168  (IBM  74)  and  a  Zilog  Z-80  Development  System.  The 
only  assumption  made  in  this  implementation  is  that  the 
memory  of  the  host  machine  is  structured  into  directly 
addressable  bytes. 


Storage  Management  in  LISP 

Implementors  of  LISP  systems  have  developed  various 
techniques  to  make  efficient  use  of  free  storage  (ie:  that 
part  of  the  memory  not  occupied  by  the  operating  system 
and  the  LISP  kernel  including  the  data  structure  manipu- 
lating primitives  and  the  garbage  collector).  In  all  these 
techniques,  objects  are  manipulated  via  pointers,  and 
arbitrary  run  time  type  checking  is  possible  in  both 
system  programs  and  user  defined  functions.  This  is  nor- 
mally achieved  by  using  typed  pointers  in  a  more  or  less 
explicit  way.  A  typed  pointer  is  a  pair  <T,A>  which 
identifies  an  object  type  T  located  at  address  A.  The 
length  of  A  usually  coincides  with  the  address  length  of 
the  host  machine  (eg:  18  bits  in  the  PDP-10,  24  bits  in  the 
IBM  System/370).  In  this  way,  the  hardware  addressing 
mechanism  may  be  efficiently  used  for  the  implementa- 
tion of  most  data  structure  manipulating  primitives.  The 
representation  of  T  usually  requires  only  a  few  bits 
(typically  2  or  3  in  small  systems  with  a  limited  number 
of  data  types,  7  or  8  in  large  ones). 

Although  it  is  possible  to  implement  a  typed  pointer 
<T,A>  as  the  concatenation  of  the  bit  strings  repre- 
senting T  and  A,  in  some  systems  only  A  is  represented 
explicitly,  while  T  is  implied  by  (ie:  is  a  function  of)  A. 


Acknowledgements 

The  work  reported  in  this  article  has  been  partly  supported  by 
CNR  during  a  period  of  four  months  spent  by  Martin  Rudalics 
at  the  Instituto  di  Elaborazione  dell  Informazione  with  a 
scholarship  of  the  Italian  Foreign  Office. 


26        August  1979  ©  BYTE  Publicalions  Inc 


*X)iir  inventory  is  our  existence^ 

Think  we^d  trust  it  to  anything  less 

than  Scotch  Brand  IKskettes?^ 


Don  Stone,  Vice-President, 
Mass.  Auto  Supply  Company, 
Inc.,  Boston,  Mass. 

Scotch  Diskettes  are  the 
diskettes  you  can  depend  upon 
with  the  information  your 
business  depends  upon. 

Each  one  is  tested  and 
certified  error-free  before  it 
leaves  our  factory.  Because  we 
know  nothing  less  than 
perfection  is  acceptable  for 
your  vital  business  data. 

Scotch  Diskettes  are 
available  in  regular  or  mini 
sizes,  compatible  with  almost 
any  system. 

To  find  out  where  you  can 
find  Scotch  Diskettes,  call 
toll  free:  800-328-1300. 
(In  Minnesota,  call  collect: 
612-736-9625.)  Ask  for  the  Data 
Recording  Products  Division. 


If  it's  worth  remembering, 

it's  worth  Scotch 

Data  Recording  Products. 


3M 


Circle  368  on  inquiry  card. 


BYTE  AugusI  1979 


A  one-to-one  correspondence  between 
partitions  and  data  types  is  implicitly 
established. 


There  are  basically  three  ways  of  implementing  typed 
pointers. 

Contiguous  Partitions 

Free  storage  is  divided  into  a  number  of  areas  called 
partitions  which  consist  of  contiguous  memory  cells  (ie: 
bytes  or  words).  Each  partition  is  allowed  to  contain  only 
data  belonging  to  the  same  type  (also  referred  to  as  the 
type  of  the  partition,  see  figure  1).  A  one-to-one  corres- 
pondence between  partitions  and  data  types  is  implicitly 
established  by  the  implementation  of  the  data  structure 
manipulating  primitives.  The  type  T  of  an  object  is  ob- 
tained by  comparing  its  address  A  with  the  boundaries  of 
the  partitions. 

This  technique  has  been  adopted  by  the  PDP-10  imple- 
mentation of  LISP  1.6  and  some  early  versions  of 
MacLISP.  In  fact  it  is  particularly  suited  to  those  com- 
puters in  which  typed  pointers  are  not  allowed  to  contain 
an  explicit  representation  of  T  without  a  considerable 
waste  of  space.  As  an  example,  one  word  in  the  PDP-10  is 
36  bits  long  and  may  contain  exactly  two  addresses.  If 
one  half  word  were  reserved  for  representing  T,  several 
bits  would  remain  unused. 

Contiguous  partitions  may  be  disadvantageous  when 
the  partition  associated  with  a  type  T  becomes  full  and 
the  allocation  of  a  new  object  of  type  T  is  requested.  The 
garbage  collector  may  then  fail  to  recover  sufficient  space 
for  allocating  the  new  object,  even  though  other  parti- 
tions are  nearly  empty.  This  drawback  may  be  eliminated 
by  enlarging  the  overpopulated  partition  and  contracting 
the  underpopulated  ones.  A  compacting  garbage  collec- 
tor with  additional  phases  is  required  for  this  purpose. 
After  the  compaction  phase,  the  boundaries  of  the  parti- 
tion are  redefined,  data  is  moved  to  fit  the  new  boun- 


daries and  all  pointers  to  moved  data  are  updated  accord- 
ingly. 

Paged  Partitions 

Free  storage  is  divided  into  pages  of  equal  length 
(usually  a  power  of  2,  eg:  1  or  2  K  bytes  or  256  or  512 
words).  A  page  is  referred  to  as  busy  or  free,  according  to 
whether  or  not  it  currently  contains  data.  Like  conti- 
guous partitions,  each  busy  page  may  contain  only  data 
belonging  to  the  same  type,  further  referred  to  as  the  type 
of  the  page.  The  correspondence  (usually  many-to-one) 
between  busy  pages  and  their  respective  types  is  dyna- 
mically realized  by  a  type  table,  which  also  keeps  track  of 
the  free  pages  (see  figure  2). 

The  type  T  of  an  object  located  at  address  A  may  be 
retrieved  by  accessing  the  type  table  using  the  most  signi- 
ficant bits  of  A  as  an  index  (this  is  possible  if  the  page 
length  is  a  power  of  2).  When  a  object  of  type  T  is  to  be 
allocated  and  no  more  space  is  available  in  pages  of  type 
T,  a  new  free  page  is  used  and  its  type  is  set  to  T.  Thus, 
the  partition  associated  with  a  given  type  is  distributed 
over  several  pages.  The  garbage  collector  compacts  all 
data  of  a  given  type  into  as  few  pages  as  possible. 

This  technique,  which  has  been  developed  as  an  alter- 
native to  contiguous  partition  for  the  same  class  of  com- 
puter architectures,  has  been  empleyed  in  the  PDP-10  im- 
plementation of  INTERLISP  and  recent  versions  of 
MacLISP  (as  described  by  G  Steele  in  Data  Representa- 
tion in  MacLISP). 

As  for  the  efficiency,  paged  partitions  and  contiguous 
partitions  with  variable  boundaries  are  comparable:  the 
necessity  of  accessing  the  type  table  may  lead  to  a  slower 
type  checking,  but  the  garbage  collector  need  not  recom- 
pute boundaries  and  move  data  accordingly.  A  nice  pro- 
perty of  this  technique  is  its  compatibility  and  smooth  in- 
teraction with  timesharing  operating  systems  that  have 
paged  virtual  memories.  In  fact,  the  page  table  used  by 
the  operating  system  and  the  type  table  may  be  easily 
combined. 

Paged  Partitions  with  Tagged  Pointers 

This  technique  is  identical  to  the  preceding  one,  except 


PI 

(Tl) 

P2 
(T2) 

P3 
{T3) 

•  •  • 

•  •  • 

Pn 
(Tn) 

1 

k 

1      •      1 

• 

Figure  1:  Contiguous  partitions:  a  pointer  to  an  object  of  type 
T2. 


PI 

P2 

P3 

P4 

P5 

•    •  • 

Pn 

■ 

( 

Tl 

T2 

Tl 

•    •    • 

T3 

»   •    •  i 

' 

Figure  2:  Paged  partitions:  a  pointer  to  an  object  of  type  T2. 


28        August  1979  ?!  BYTE  Publications  Ire 


Tinker,  Tailor,  Soldier,  Sailor  .  .  . 
Doctor,  Lawyer  .  .  .  the  Chieftain's  here. 

No  matter  whether  you're  a  serious 
hobbyist  or  a  serious  businessman,  the 
Chieftain  6800  microcomputer  with  ca- 
pabiHties  that  surpass  the  Z-80  is  made 
for  you. 

Smoke  Signal's  quality-packed 
Chieftain  I  features  two  5.25-inch  mini- 
floppy drives  and  Chieftain  II  fea- 
tures two  8-inch  floppy  drives.  «.«***' 

Both  microcomputers       ,^ 
provide  32K  static  memory,        ^  ^ 
two  serial  I/O  ports,  a  2       0*^ 
MHz  processor  board,  a  2K 
RAM  monitor,  a  nine-slot 
motherboard  with  built- 
in  baud  rate  generator 
and  gold  connectors  for 
high  reliability.  The 
Chieftain's  stylish  leath- 
er-grained cabinet  houses 
the  above  with  its  own 
cooling  fan  and  regulated 
power  supply. 


Every  Chieftain  is  complete  with 
system  software  and  is  totally  burned-in 
as  well  as  tested  to  further  insure  high 
reliability. 

And  it's  expandable  to  64K  memory 
with  up  to  2  megabytes  floppy  disk 
storage. 

So  see  your  nearest  Smoke  Signal 
dealer,  he'll  be  glad  to  show  you  how  to 
get  your  wampum's  worth.  Systems 
j^_^^  start  at  $2,595. 


n  Send  information  on  your  Chieftain 
microcomputer 
D  Send  name  of  nearest  dealer 

Name 

Address 

Company  

City 


SMOKE  SIGNU 
BUUDCISnNG 

31336  Via  f'olinas.  Westlake  Village. 
California  91361,  (213)  889-9340 


Dealer  inquiries  invited. 


Hail  to  the  Chieftcun 

Smoke  Signal  Broadcasting.  31336  Via  Colinas,  Westlake  Village,  CA  91361,  (213)  889-9340 


Circle  328  on  inquiry  card. 


BYTE  August  1979         29 


PI 

P2 

P3 

P4 

P5 

•  •  • 

Pn 

1 

T2 

1 

1 

INT 

347 

LISP    does   not    contain    primitives    for 
declaring  new  data  types. 


Tl 

T2 

< 

Tl 

» 

•  •  • 

T3 

1 

1 

■ 

Figure  3:  Paged  partitions  with  tagged  pointers:  a  pointer  to  an 
object  of  the  type  T2  and  the  representation  of  the  integer  347. 


T         / 


<FIE> 


<FOE> 


<FUE> 


Figure  4:  Storage  representation  of  an  object  created  by  MK- 
FOO. 


•I  • ••  •  ■ K-  •  • 


FOO 


<FIE> 


<FOE>  <FUE> 


Figure    5:    Storage    representation    of   an    object    created    by 
MK  =  FOO. 


for  the  fact  that  all  pointers  to  an  object  also  contain  an 
explicit  representation  of  its  type  T  (see  figure  3). 

Tagged  pointers  have  been  adopted  in  MagmaLISP  and 
the  IBM  version  of  InterLISP.  They  are  convenient  in 
computers  whose  word  size  exceeds  the  address  length  by 
a  few  bits,  which  may  comfortably  contain  the  represen- 
tation of  T  type.  As  an  example,  a  typed  pointer  <  T,  A  > 
may  be  represented  with  a  full  word  in  the  IBM 
System/370  by  reserving  24  bits  for  A  and  the  remaining 
8  bits  for  T.  It  is  interesting  to  note  that  the  LISP  machine 
(described  by  A  Bawden,  et  al,  in  the  LISP  Machine  Pro- 
gress Report)  implements  typed  pointers  in  this  way. 

Tagged  pointers  allow  for  a  quick  retrieval  of  the  type 
of  an  object.  Moreover,  short  constants  such  as  char- 
acters, small  integers,  etc,  may  be  directly  represented  in 
the  address  part  of  a  typed  pointer  (see  figure  3).  The  type 
T  identifies  them  as  immediate  data  not  to  be  manipu- 
lated as  pointers  (note  that  no  private  pages  are  needed  to 
store  immediate  data).  The  main  drawback  of  this  techni- 
que is  that  information  is  somehow  duplicated:  in  fact,  a 


type  table  is  still  needed  by  the  garbage  collector  during 
the  compaction  phase. 

How  To  Get  Rid  of  Most  Terminating  NILs 

LISP  (unlike  ALGOL  68  and  Pascal)  does  not  contain 
primitives  for  declaring  new  data  types.  However,  S 
expressions  are  an  effective  tool  allowing  the  user  to  pro- 
gram new  data  types  explicitly. 

As  an  example,  consider  a  record  class  named  FOO 
whose  instances  contain  the  fields  FIE,  FOE,  and  FUE. 
The  data  type  FOO  may  be  programmed  in  LISP  using 
proper  lists  (ie:  lists  ending  with  NIL)  as  follows: 

(DEFINE  MK-FOO    (FIE  FOE  FUE) 

(LIST  '  FOO  FIE  FOE  FUE)) 
(DEFINE  IS-FOO       (X)  (EQ  (CAR  X)  '  FOO)) 
(DEFINE  FIE-OF        (X)  (CADR  X)) 
(DEFINE  FOE-OF      (X)  (CADDR  X)) 
(DEFINE  FUE-OF       (X)  (CADDDR  X)) 

The  storage  representation  of  an  object  of  type  FOO  is 
shown  in  figure  4.  It  is  immediately  evident  that  this 
representation  is  space  consuming:  in  fact,  the  last  cell 
may  be  eliminated,  and  the  pointer  turned  into  a  pointer 
to  <  FUE>  (see  figure  5).  To  this  purpose,  MK-FC3o  and 
the  other  functions  may  be  redefined  as  follows: 

(DEFINE  MK=FOO    (FIE  FOE  FUE) 

(CONS  '  FOO  (CONS  FIE  (CONS  FOE  FUE)))) 
(DEFINE   IS=FOO  (X)  (EQ  (CAR  X)  '  FOO)) 
(DEFINE  FIE  =OF  (X)  (CADR  X)) 
(DEFINE  FOE  =  OF  (X)  (CADDR  X)) 
(DEFINE   FUE  =  OF  (X)  (CDDDR  X)) 

Unfortunately,  when  the  structures  created  by 
MK  =  FOO  are  printed  by  the  standard  output  routines  of 
LISP  (eg:  for  debugging  purposes),  their  readability 
decreases  considerably.  For  instance,  (MK-FOO  1  2  (MK- 
FOO  3  4  5))  is  printed  as  (FOO  1  2  (FOO  3  4  5)),  whereas 
(MK  =  FOO  1  2  (MK  =  FOO  3  4  5))  yields  (FOO  1  2  FOO 
3  4.5),  thus  introducing  an  irritating  extra  dot  while 
omitting  one  pair  of  significant  parentheses. 

It  is  possible  to  both  maintain  the  clean  formalism  of 
proper  lists,  and  represent  them  efficiently  (as  indicated 
in  figure  5)  by  introducing  the  concept  of  NULLCDR 
cells.  To  this  purpose  an  additional  bit,  B,  is  associated 
with  each  typed  pointer,  thus  yielding  a  triple 
<T,B,A>.  When  B  is  clear,  <T,B  A>  represents  a 
typed  pointer  as  usual.  When  B  is  set,  <T,B,A> 
represents  a  LISP  cell  whose  CDR  is  NIL  (ie:  a  NULLCDR 
cell)  and  whose  CAR  has  type  T  and  is  located  at  address 
A.  NIL  must  be  used  explicitly  in  only  a  very  few  cases 
(see  figure  6). 

With  the  introduction  of  NULLCDR  cells,  only  proper 


30        August  1979  ©  BYTE  Publicalions  Inc 


lists  are  allowed  in  Lambdino.  This  fact  has  several  con- 
sequences: 

•  Space  is  not  only  saved  in  the  implementa- 
tion of  user  defined  data  structures,  but  also 
in  the  list  representation  of  interpreted  func- 
tions. Most  lists  in  purely  applicative  pro- 
grams contain  less  than  3  or  4  elements, 
hence  the  introduction  of  NULLCDR  cells 
allows  a  save  of  25  to  33%  in  space. 

•  The  absence  of  the  LISP  dot  notation  slightly 
simplifies  the  I/O  (input/output)  routines. 

•  The  time  required  by  CONS  for  checking  the 
type  of  its  second  argument  is  largely  com- 
pensated by  the  time  saved  using  NULL  (or, 
better,  NULLCDR)  instead  of  NLISTP  as  a 
predicate  for  terminating  recursions.  Also, 
the  functions  CAR,  CDR  and  NULLCDR 
need  not  make  a  storage  access  when  their 
argument  is  a  NULLCDR  cell.  This  may  lead 
to  a  significant  save  of  time.  As  an  example, 
the  function: 

(DEFINE  EVLIS  (X  A) 
(COND  ((NULL  X)  NIL) 

(T  (CONS  (EVAL  (CAR  X)  A) 

(EVLIS  (CDR  X)  A))))) 

may  be  written  more  efficiently  as: 

(DEFINE  EVLIS  (X  A) 
(COND  ((NULL  X)  NIL) 

(T  (EVLISl  X  A)))) 

(DEFINE  EVLISl  (X  A) 

(CONS  (EVAL  (CAR  X)  A) 

(COND  ((NULLCDR  X)  NIL) 

(T  (EVLISl  (CDR  X)  A))))) 

This  improved  version  saves  some  storage  accesses  and 
one  recursive  call  to  (and  return  from)  EVLIS. 

RPLACA  and  RPLACD  (if  they  are  implemented  at 
all!)  generate  an  error  when  applied  to  NULLCDR  cells. 

Standard  garbage  collectors  (including  the  Schorr- 
Waite  algorithm)  are  unaffected  by  the  presence  of 
NULLCDR  cells  (pointers  having  the  NULLCDR  bit  set 
are  treated  exactly  as  usual  pointers). 

Lambdino  Design  Issues 

The  Lambdino  storage  management  system  is  a  mix- 
ture of  contiguous  partitions  and  tagged  pointers  with 
NULLCDR  bits.  More  precisely,  the  free  storage  is  di- 
vided into  two  variable  partitions  FIXLEN  and  VARLEN 
(see  figure  7). 

FIXLEN  may  contain  only  fixed  length  data  (ie:  data 
whose  memory  occupation  depends  only  on  their  type). 
There  are  three  FIXLEN  data  types  in  Lambdino,  namely 
atoms,  cells  and  interpreted  closures.  They  are  records 
with  two  fields  with  the  following  characteristics: 

•  Atoms  have  a  TOPVAL  field  which  may  be 
any  datum  (eg:  a  function  definition)  and  a 
PNAME  field,  which  must  be  a  string  (pro- 
perty list  lovers  will  be  allowed  to  use  this 
field  for  holding  property  lists  in  special  ver- 


0      t  I      * If  It         ►        I      •  0     . 


Figure  6:   Tagged  pointers  with  NULLCDR  bit:  the  example 
represents  (A  ((B)  Q)  and  ((A)). 


VARALL         FIXALL 

Figure  7:  Overall  organization  of  the  free  storage  in  the  Lamb- 
dino storage  management  system. 


b3 

b2 

bl 

bO 

ADDRESS 

Figure  8:  Tagged  pointers  in  the  Lambdino  storage  management 
system. 


sions  of  Lambdino). 

•  Cells  have  a  CAR  field  which  may  be  any 
datum  and  a  CDR  field  which  must  be  a  list, 
though  possibly  empty. 

•  Interpreted  closures  have  a  FUN  field  which 
must  contain  a  LAMBDA  and  an  ENV  field 
which  contains  an  ALIST  (they  are  similar  to 
FUNARG  objects  in  LISP). 

VARLEN  is  reserved  for  variable  length  data,  ie:  data 
which  must  contain  explicit  information  on  their  memory 
occupation.  There  are  three  variable  length  data  types  in 
Lambdino,  namely  strings,  compiled  functions  and  com- 
piled closures: 

•  Strings  are  mainly  used  for  representing 
atom  print-names. 

•  Compiled  functions  are  binary  code  produc- 
ed by  the  Lambdino  compiler. 

•  Compiled  closures  contain  a  pointer  to  a 
compiled  function  (which  corresponds  to  the 
FUN  field  of  interpreted  closures)  and 
pointers  to  the  values  of  its  free  variables 
(they  correspond  to  the  ENV  field  of  inter- 
preted closures). 

A  new  datum  is  allocated  by  moving  FIXALL  to  the  left 
or  VARALL  to  the  right  according  to  whether  it  is  a 
FIXLEN  or  a  VARLEN  datum.  When  FIXALL  and 
VARALL  collide,  a  standard  compacting  garbage  collec- 
tor is  invoked  to  contract  VARLEN  to  the  left  and  FIX- 
LEN to  the  right.  The  common  length  of  FIXLEN  data 


August  1979  ©  BYTE  Publicalions  Inc       31 


TAG  1 

TAG  2 

ADDRESS  1 

ADDRESS  2 

-•—  1  BYTE  — ► 

-» 4  BYTES - 

Figure  9:  Representation  of  a  cell  in  the  Zilog  Z-80  Development 
System. 


TAG  1 

ADDRESS  1 

TAG  2 

ADDRESS  2 

■• 4  BYTES ► 

•• 4  BYTES J 

Figure  10:  Representation  of  a  cell  in  the  IBM  System  370. 


allows  the  garbage  collector  to  operate  properly  during 
the  compaction  phase  without  knowing  the  type  of  the 
objects.  This  guarantees  an  optimal  use  of  the  limited 
memory  of  the  host  microcomputer. 

Data  are  referenced  by  a  special  kind  of  tagged  pointers 
(see  figure  8).  The  tag  consists  of  four  bits: 

•  b3  is  used  during  the  mark  phase  of  the  gar- 
bage collector. 

•  b2  is  the  NULLCDR  bit:  when  it  is  set,  the 
tagged  pointer  represents  a  NULLCDR  cell. 

•  bl  and  bO  are  used  together  with  A  to  deter- 
mine the  type  of  a  datum. 

The  datum  type  is  determined  by  bits  bl  and  bO  as 
follows: 

•  When  either  bl  or  bO  is  set,  A  is  interpreted 
as  the  address  of  a  fixed  or  variable  length 
datum,  according  to  whether  A  points  into 
FIXLEN  or  VARLEN.  In  this  case  the  three 
possible  configurations  of  bl  and  bO  are  suf- 
ficient to  cover  the  three  types  of  FIXLEN 
and  VARLEN  data,  respectively. 

•  When  bl  and  bO  are  both  clear,  A  is  to  be  in- 
terpreted as  an  integer  number.  Integers  con- 
stitute the  seventh  data  type  of  Lambdino 
and  are  always  represented  as  immediate 
data. 

Implementation  Details 

Our  inplementation  of  Lambdino  is  supported  by  an 
abstract  stack  machine  SM  which  contains  the  following 
primitives,  in  addition  to  standard  arithmetic  and  control 
routines  (we  assume  that  A  is  a  nonnegative  Lambdino 
integer,  V  a  nonnegative  Lambdino  integer  less  than  256, 
P  an  arbitrary  Lambdino  tagged  pointer). 

(GETBYTE  A)  returns  an  integer  representing  the  con- 
tents of  the  byte  located  at  address  A. 

(PUTBYTE  A  V)  stores  V  into  the  byte  located  at  ad- 
dress A. 

(GETCHAR)  reads  the  next  character  from  the  input 


stream  and  returns  its  integer  representation. 

(PUTCHAR  V)  writes  the  character  represented  by  V 
into  the  output  stream. 

(GETTYPE  P)  returns  the  integer  representation  of  the 
tag  of  P. 

(PUTTYPE  P  V)  returns  a  new  pointer  having  tag  V 
and  the  same  address  part  as  P. 

The  Lambdino  storage  management  system,  which  is 
entirely  written  in  terms  of  these  primitives,  contains 
parameters  to  define  the  size  of  addresses  and  to  specify 
whether  or  not  two  tags  have  to  be  packed  into  one  byte. 
When  bootstrapping  the  system  on  a  Zilog  Z-80  Develop- 
ment System,  16  bits  for  the  representation  of  addresses 
and  the  packed  version  of  tags  are  recommended  (see 
figure  9),  while  24  bit  addresses  and  unpacked  tags 
should  be  used  on  an  IBM  System/370  (see  figure  10). 

Concluding  Remarks 

We  have  developed  an  experimental  implementation  of 
Lambdino  written  in  Lambdino  itself.  It  includes  a 
Lambdino  interpreter,  an  interpreter  for  the  stack 
machine  SM  and  a  compiler  which  translates  Lambdino 
functions  into  SM  programs.  All  these  Lambdino  func- 
tions have  been  debugged  using  a  simple  Lambdino  inter- 
preter written  in  MagmaLISP.  As  all  functions  of  the 
system  eventually  call  the  previously  defined  primitives, 
the  system  can  be  (and  will  be  soon)  bootstrapped  by 
compiling  it  to  the  machine  code  of  SM  using  it  own  com- 
piler, and  by  macroexpanding  the  resulting  code  to  the 
machine  language  of  the  host  computer.  ■ 


BIBLIOGRAPHY 

1.  Allen,  J,  Anatomy  of  LISP,  McGraw-Hill,  1978. 

2.  Bawden,  A,  Greenblatt,  R,  Holloway,  J,  Knight,  T,  Moon,  D, 
Weinreb,  D,  LISP  Machine  Progress  Report,  Memo  Number  444, 
Laboratory  for  Artificial  Intelligence,  Massactiusetts  Institute  of 
Technology,  1977. 

3.  IBM  System/370  Model  168  Theory  of  Operation,  Form  Numbers 
SY22-693 1/2/3/4/5/6,  IBM  Corporation,  Poughkeepsie  NY,  1974. 

4.  Landin,  P,  "The  Mechanical  Evaluation  of  Expressions,"  Com- 
puter Journal,  volume  6,  number  4,  1964,  pages  308  thru  320. 

5.  Montangero,  G,  Pacini,  G,  Turini,  F,  "MAGMA-LISP;  a  Machine 
Language,  for  Artificial  Intelligence,"  Proceedings  of  the  Fourth 
International  Joint  Conference  on  Artificial  Intelligence,  Tbilisi, 
1975,  pages  556  thru  561. 

6.  Moon,  D,  MacLISP  Reference  Manual,  Laboratory  for  Computer 
Science,  Massachusetts  Institute  of  Technology,  1974. 

7.  Guam,  L,  Diffie,  W,  Stanford  LISP  1.6  Manual,  Artificial  Intel- 
ligence Laboratory,  Stanford  University,  1972. 

8.  Reynolds,  J,  "Definitional  Interpreters  for  Higher-Order 
Programming  Languages,"  Proceedings  of  the  ACM  National 
Convention,  1972,  pages  717  thru  740. 

9.  Steele,  G,  "Data  Representation  in  MacLISP,"  Memo  Number 
420,  Laboratory  for  Artificial  Intelligence,  Massachusetts  Insti- 
tute of  Technology,  1977. 

10.  Sussman,  G,  Steele,  G,  "SCHEME:  an  Interpreter  for  Extended 
LAMBDA  Calculus,"  Memo  Number  349,  Laboratory  for  Arti- 
ficial Intelligence,  Massachusetts  Institute  of  Technology,  1975. 

11.  Teitelman,  W,  INTERLISP  Reference  Manual,  Xerox  Palo  Alto 
Research  Center,  1975. 

12.  Urmi,  J,  INTERLISP/370  Reference  Manual,  Department  of 
Mathematics,  Linkoeping  University,  1976. 

13.  Z-80  Development  System  Hardware  User's  Manual,  Zilog  In- 
corporated, Cupertino  CA,  1977. 


32        Augusl  1979  ©  BYTE  Publications  Inc 


no  loose  ends 

All-ln-One:  computer,  floppy,  l/0,16K  RAM.  $1595 


^    I    i    L    L    I    L    I    i.    .    .    .    .    .    u    u   \i 


li  ii  1  i-l-i  i  i  1 


CN>    Tn  m  •ierorrociitort 
ClKtl    2.HIXH2 

|i    l(r  tytii  mill  (ipindiblr  to  «SK 


lllfliyi    23  linti  by  91  chiricliri 


Cbirictirii    5  «  ?  dot 


upp«r  1  loutr  cm 


iriplllcil    93  ipiciti  gnphict  chirictlrl 

IPItPirdi    »  kiyl,  (I  ilph<nu»rlc  t  12  function 
control  (8  ui>r-dtflnibli) 

Itiirlc  Iwipidi    12  kill 

Cv»r  HdrHilnfi    rplitivi  I  dlrict  for  Ml  eiirior  eonirol 

Hit  Functlonii  Iniirt  op-dtlttp  chiractpr  or  lino 

IIMtl    Ntrill  ind  rovtrti  by  chiricttr  for  hl|hll|hlln|   _ 


»%i 


New  Heathkit*  H89 
All-ln-One  Computer 

Heath  takes  the  risk  out  of  selecting  a 
balanced  computer  system.  Now,  video 
terminal,  floppy,  keyboard  and  8-bit 
computer  are  brought  together  in  one 
self-contained,  compact  unit.  Nothing 
hangs  out. 

Two  Z80's 

The  personal  computer  has  never  been 
simpler.  Or  smarter.  Two  Z80  microproc- 
essors mean  terminal  never  shares  pow- 
er with  computer,  as  do  most  desk-top 
units.  So  this  terminal  is  capable  of  a 
multitude  of  high-speed  functions,  all 
controllable  by  keyboard  or  software. 

'$1195  without  floppy.  Mail  order  kit  price,  F.O.B. 
without  notice. 


102K  bytes  storage 

Built-in  floppy  disk  system  gives  you  fast 
access  to  programs  and  data.  Each  SV*- 
inch  diskette  has  more  than  102K  bytes 
of  storage  area,  enough  to  hold  entire 
files.  The  All-ln-One  comes  with  16K 
RAM,  expandable  to  48K. 

Hundreds  of  uses  at 
home  or  work 

The  All-ln-One  Computer  runs  programs 
written  in  MICROSOFT™  BASIC  and 
ASSEMBLER  Languages.  And  it  accepts  all 
current  software  written  for  the  popular 
Heathkit  H8  computer.  You  can  choose 
from  scores  of  practical  programs  for 
home  and  business. 


Learn  by  building 

What  better  way  to  learn  about  comput- 
ers than  to  build  one  yourself?  The  All- 
ln-One  is  available  in  easy-to-build  kit 
form,  as  well  as  completely  assembled. 
Like  all  Heath  electronic  kits,  it  comes  to 
you  with  its  own  easy-to-follow  assem- 
bly manual  and  a  nationwide  network  of 
service  centers  to  assure  smooth  sailing. 

FREE  CATALOG 

For  complete  details  on  the 
Heathkit  H89  All-ln-One 
Computer  and  nearly  400 
other  electronic  kits  for  your 
home,  work  or  pleasure,  send 
today  for  the  latest  Heathkit 
Catalog  of  values. 

Benton  Harbor,  Ml.  Also  available  at  Heathkit  Electronic  Centers  at  slightly  higher  prices.  Prices  subject  to  change 


Heathkif 

HEATH  COMPANY,  DEPT.  334-560,  BENTON  HARBOR,  Ml  49022 


CP-165 


Circle  162  on  inquiry  card. 


BYTE  August  1979         33 


Pattern-Directed 
Invocation  Languages 


William  A  Kornfeld 

MIT  Artificial  Intelligence  Laboratory 

545  Technology  Sq 

Cambridge  MA  02139 


LISP  was  first  developed  for  use  in  artificial  intelligence 
research,  the  branch  of  computer  science  concerned  with 
understanding  the  nature  of  intelligent  activity  by 
simulating  it  on  a  computer.  LISP  has  proved  so  suc- 
cessful that  it  is  the  only  high  level  language  currently 
supported  at  the  MIT  Artificial  Intelligence  Laboratory. 
Much  of  its  success  is  due  to  its  syntax  and  data  structures 
which  make  it  a  convenient  base  upon  which  to  imple- 
ment very  high  level  special  purpose  languages. 

One  very  important  class  of  these  high  level  languages 
is  the  so-called  pattern-directed  invocation  languages. 
They  made  their  first  appearance  in  about  1970  with  the 
Planner  system  at  MIT.  Since  then,  dozens  of  these 
languages  have  been  built  at  sites  around  the  world  with 
different  sets  of  features.  The  basic  concepts  involved  can 
be  traced  back  to  the  work  of  such  logicians  and 
philosophers  as  Frege,  Russell,  and  Carnap  in  the  earlier 
part  of  this  century.  They  were  concerned  with  represen- 
ting and  manipulating  facts  about  the  world.  They  began 
with  atomic  facts  and  described  methods  that  could  be 
used  to  deduce  new  facts  from  old.  Pattern-directed  invo- 
cation languages  treat  facts,  represented  as  LISP  lists,  as 
elementary  data  types  and  usually  collect  them  together 
into  one  or  more  data  bases.  Procedures  can  be  written  to 
derive  new  facts  (or  to  decide  if  it  is  possible  to  derive  a 
given  fact)  from  those  already  in  the  data  base. 

In  this  article  we  will  be  mostly  concerned  with  the 
basic  concepts  involved  in  pattern-directed  invocation 
languages.  Toward  the  end,  a  brief  summary  is  given  of 
some  of  the  more  advanced  ideas  that  have  found  their 
way  into  these  languages.  Special  attention  is  given  to  the 
problem  of  implementing  these  languages  in  a  LISP 
system.   Much   of   this  implementation   is  surprisingly 


About  the  Author: 

William  Kornfeld  is  a  graduate  student  at  the  MIT  Artificial  Intelli- 
gence Laboratory .  He  is  currently  doing  research  in  the  semantics  of 
pattern-directed  invocation  and  extensions  of  these  ideas  to  parallel 
processing. 


straightforward,  once  the  basic  concepts  of  LISP  are 
understood.  In  fact,  the  task  of  implementing  a  system 
almost  identical  to  the  one  described  here  was  given  to 
students  in  a  beginning  programming  course  at  MIT.  The 
students  had  had  only  a  few  weeks  experience  with  LISP, 
and  a  total  programming  experience  of  a  couple  of 
months,  but  they  had  little  problem  with  the  assignment. 

Retrieval  of  Information  by  Pattern 

Suppose  we  wanted  to  represent  the  knowledge,  inside 
of  our  computer,  that  Lena  is  the  mother  of  Paul.  This 
sentence  contains  three  important  items;  the  two  people, 
Lena  and  Paul,  and  the  relationship  —  one  being  the 
mother  of  the  other.  This  fact  can  be  represented  using 
the  data  structures  of  LISP  as  a  list  with  three  elements. 
We  are  free  to  choose  any  arrangement  of  the  items  in  the 
list;  placing  the  relation  (mother-of)  in  the  first,  second, 
or  third  position  of  the  list.  I  prefer  to  keep  to  the  LISP 
(and  mathematical)  conventions  of  putting  the  relation- 
ship first,  and  having  the  arguments  follow.  This  fact  will 
be  represented  as: 

(MOTHER-OF  LENA  PAUL) 

We  could  have  many  such  facts  similarly  represented  by 
list  structure  inside  of  our  machine.  Some  examples  are: 

(MOTHER-OF  LENA  FAY) 

(WIFE-OF  LENA  SAM) 

(MOTHER-OF  FAY  ROBERT) 

(MOTHER-OF  FAY  ARLENE) 

(FEMALE  LENA) 

(FEMALE  FAY) 

(MALE  ROBERT) 

(MALE  SAM) 

We  call  each  of  these  facts  an  assertion.  Assertions  are 
pieces  of  arbitrary  list  structure  (as  far  as  the  LISP  inter- 
preter is  concerned).  So  that  they  may  be  used  in  our  pro- 


34        August  1979  ©  BYTE  Publications  Inc 


m  in  pfvji 


APHieS  BOARD 


SISi!    Bl'S 


Screen  images  are  as 
photographed,  unretouc  hed 


Main  Features 

p     Motorola  MC6847  video  display 

generator. 
'*     Eight  colors  —  green,  yellow,  blue,  red; 
\,       buff,  cyan,  magenta,  orange. 
^     11  programmable  modes 

1  alphanumeric  mode  with  32  x  16 
1         character  and  Inverse  video. 

2  scmigraphlc  modes  with  8  colors 
In  64  X  32  and  64  x  48. 

"     8  full  graphic  modes  with  2  sets  of 
4  colors  ranging  from  64  x  64  to 
128  X  192,  and  8  sets  of  1  color  in 
■        256  X  192. 

>n-board  8085  microprocessor. 

^'^1  bytes  of  on  board  static  RAM. 

_  b4K  bytes  of  EPROM. 

riie  S-100  compatibility. 


,CGS-808 

Biotech  Electronics  proudly  annourie__ 
the  CGS-808,  a  highly  sophisticated  color 
graphics  board  for  the  S-100  bus. 

The  CGS-808  is  a  single  board  graphics 
processor  which  is  Incredibly  simple  to  use. 
It  is  I/O  mapped  and  requires  no  memory 
space.  It  wiU  operate  in  any  S-100  system 
or  as  a  stand-alone  graphics  processor.  By 
changing  the  firmware  pack,  the  CGS-808 
can  be  upgraded  to  perform  additional 
complex  or  custom  graphic  functions.  It 
also  provides  a  parallel  I/O  port  to 
interface  with  digitizers,  Joysticks,  light 
pens,  or  directly  into  a  keyboard. 

The  CGS-808  is  designed  for  a  fow 
cost,  high  quality,  professional  display  for 
applications  in  medicine,  business, 
education,  science,  industry,  and  video 
games. 


■^-TSIrele  31  on  Inquiry  card. 


Immediate  Availability 

The  CGS-808  is  available  assembled 
and  tested  for  g385.00,  or  the  bare  "kit" 
with  the  MOS  chip  set  for  g99.00  (Chip  set 
includes  the  MC6847,  MC1372,  8085  and 
2708  EPROM  with  graphics  driver 
subroutines).  Color  monitors  are  available 
for  g495.00.  Delivery  is  from  stock. 

Dealer  Inquiries  are  invited. 

For  more  information,  call  or  write 


Biotech  Electronics 
P.  O.  Box  485 
Ben  Lomond,  CA  95005 
^*r08)  338-2686 


BYTE  Augusl  197P 


Simple  Pattern  Matcher 

A  simple  pattern  matcher  can  be  implemented  as  a 
LISP  function  of  two  arguments,  an  assertion  and  a  pat- 
tern. Here  are  some  examples  of  assertions  and  patterns 

that  match: 

(abed)  matches  (a  ?  ?  d) 
(a  (b  c)  (d  e))  matches  (a  ?  (d  ?)) 
(a  ({b  c)  d)  (e  f  g))  matches  (?  ((b  c)  ?)  ?) 

Examples  of  assertions  and  patterns  that  don't  match  are: 

(abed)  doesn't  match    (e  ?  ?  d) 
(abed)  doesn't  match  (a  ?  d) 
(a  b  (c  d)  e)  doesn't  match  (a  b  (c  d)  ?  7) 

Recursive  procedures,  such  as  this  pattern  matcher,  are 
often  thought  of  as  procedures  that  take  complex  pro- 
blems and  convert  them  into  simpler  problems.  Eventual- 
ly this  will  reduce  the  calls  to  procedures  that  are  suffi- 
ciently simple  that  they  can  be  solved  using  already  ex- 
isting LISP  functions. 

The  simple  cases  for  this  pattern  matcher  occur  when 
either  the  pattern  or  the  assertion  is  an  atom.  If  the  pat- 
tern is  the  atom  ?,  then  the  match  should  succeed  because 
?,  by  definition,  matches  anything.  If  the  pattern  is  some 
other  atom  then  the  match  should  only  succeed  if  the 
assertion  is  an  atom,  and  the  same  atom.  If  the  pattern  is 
not  an  atom  but  the  assertion  is,  the  match  should  fail. 
These  rules  cover  all  cases  where  either  the  pattern  or  the 
assertion  is  an  atom. 

Now,  suppose  that  neither  is  an  atom.  One  way  of  con- 
verting the  matching  problem  into  a  simpler  problem  is 
by  decomposing  both  the  pattern  and  the  assertion  into 
substructures  and  checking  corresponding  parts  for  a 
match.  The  LISP  primitives  FIRST  and  REST  provide  an 
easy  way  of  doing  this.  Suppose  we  tried  matching  the 
pattern: 


((a  ?  b)  7  (c  d)) 


against: 


((a  a  b)  (x  y)  (c  d)) 


The  pattern  does  match  the  assertion;  we  would  like  the 
matching  function  to  decompose  it  correctly.  When  ap- 
plied to  a  list,  the  function  FIRST  selects  the  first  element, 
and  the  function  REST  selects  everything  but  the  first  ele- 
ment. We  can  think  of  the  subparts  of  the  patterns  (and 
assertions)  selected  by  FIRST  and  REST  as  patterns 
themselves.  A  pattern  matches  an  assertion  if  and  only  if 
the  FIRST  of  the  pattern  matches  the  FIRST  of  the  asser- 
tion and  the  REST  of  the  pattern  matches  the  REST  of  the 
assertion.  The  FIRST  of  the  pattern  in  the  example  is  (A  ? 
B)  and  the  FIRST  of  the  assertion  is  (A  A  B).  These 
match.  Similarly,  the  REST  of  the  pattern  is  (?(C  D))  and 
the  rest  of  the  assertion  ((X  Y)(C  D)).  These  also  match. 
By  successively  taking  FIRST  and  REST  of  patterns  and 
assertions,  atomic  elements  must  eventually  be  reached. 
We  already  know  how  to  handle  all  forms  of  atomic 
arguments  to  the  matching  function.  No  other  cases  can 
occur.  Let  us  list  the  various  cases  discussed: 


•  If  the  pattern  is  the  atom  ?  then  the  match  should 
succeed. 

•  If  the  pattern  is  another  atom  and  is  equal  to  the 
assertion,  then  the  match  should  succeed. 

•  Otherwise,  if  the  pattern  is  an  atom  the  match 
should  fail. 

•  If  the  pattern  is  not  an  atom  but  the  assertion  is,  the 
match  should  fail. 

•  If  neither  the  pattern  nor  the  assertion  is  an  atom, 
then  the  match  should  succeed  if  and  only  if  the 
FIRST  of  the  pattern  and  assertion  match  and  the 
REST  of  the  pattern  and  assertion  match. 

These  conditions  can  be  coded  fairly  directly  into  a 
LISP  function  to  do  this.  Each  of  the  above  conditions 
becomes  one  clause  in  the  conditional  COND  expression: 


(DEF  MATCH  (PATTERN  ASSERTION) 
(COND  ((EQUAL  PATTERN  '  7)  T) 
((AND  (ATOM  PATTERN) 

(EQUAL  PATTERN  ASSERTION))  T) 
((ATOM  PATTERN)  NIL) 
((ATOM  ASSERTION)  NIL) 
(T  (AND  (MATCH  (FIRST  PATTERN) 
(FIRST  ASSERTION)) 
(MATCH  (REST  PATTERN)  (REST  ASSERTION)))))) 


grams,  these  assertions  should  be  collected  together  into  a 
data  base.  In  LISP,  the  easiest  way  of  making  a  data  base 
of  objects  is  to  make  a  list  of  them  and  let  this  list  be  the 
value  of  some  variable.  (There  are  more  efficient  ways  of 
collecting  assertions  into  a  data  base.  These  are  described 
in  the  box.)  As  we  discover  more  assertions  that  we 
would  like  to  include  in  the  program,  they  can  be  added 
to  the  list.  Assertions  can  be  just  as  easily  removed  if  we 
determine  the  fact  to  be  no  longer  valid.  Two  LISP  func- 
tions, ADD  and  REMOVE,  can  be  written  to  add  asser- 
tions to  and  remove  assertions  from  the  data  base.  Any 
program  that  wanted  to  change  the  contents  of  the  data 
base  would  make  use  of  these  two  functions.  A  function 
call  of: 

(ADD  '  (MOTHER-OF  LENA  HAROLD)) 


would  add  that  one  assertion  to  the  data  base.  A  function 
call  of: 

(REMOVE  '  (MOTHER-OF  LENA  ARTHUR)) 

would  remove  that  assertion  from  the  data  base. 

Next  we  will  need  some  way  to  retrieve  information 
stored  in  the  data  base.  If  we  want  to  know  whether  or 
not  Fay  is  the  mother  of  Robert,  the  data  base  (really  just 
a  list)  can  be  searched  for  the  assertion: 

(MOTHER-OF  FAY  ROBERT) 

A  function  called  RETRIEVE  can  do  this  easily. 
RETRIEVE  takes  one  argument,  an  assertion,  and  returns 
T  or  NIL  (yes  or  no)  depending  on  whether  or  not  the 


36        August  1979  ©  BYTE  Publicalions  Inc 


Circle  256  on  inquiry  card. 


r^ 


■i.^. 


^♦1 


••«•»»•??  ,>MMmr,,     |TT:?T?t,,  "■«•■"■•• 


.ok<  1"?;?H'G    l>AOr 


Ig^&^Btail^lliMIMIUUJUJJ^^ 


IIB^ 


h^ih'f  «m$tn  mum 


BJIII  lillllll 

.^^..■wa Mi^W 

r;)' 

Ml" 

- 

II:  Ii;  II 


.^-JLd^ 


1--  ■•  --i-'  ■  --+■-  m  —  iiiiiM  iiwm  uwni 

'                   '           '   :     ■     \          (          f 

1                   ' '    .         1       ;<         iiiutii  : 

M 

.^te-    ■' ^'sS^ii.i^''^^         ...                                            ■-■  "•  jife  tt^- "i 

i 
1 

■    ■      1 

MM16K/$349=2.W 


MM24K/$499  =  2C 


SR16K/$299  =  1.8C 


SR32K/$649  =  2<J 


Now  you  can  afford  to  sink  your  teeth  into 
some  big.  feature-packed  static  memories. 
Because  George  Morrow's  ultra-efficient 
designs  have  brought  S-100  memory  down  to  2C 
a  byte. 

Introducing  Morrow's  new  "MemoryMaster" 
Bank  Select  Logic  memories,  the  top  of  the 
SuperRam™  line. 

The  SuperRam™  MemoryMaster  16K  Static  may 
be  the  most  sophisticated  S-100  memory  at  any  price. 
The  MM16K  is  switch-programmable  to  write-protect 
any  of  the  four  4K  blocks ...  or  to  open  invisible  IK 
"windows  "  to  accommodate  VDM's  or  disk 
controllers.  An  on-board  I/O  device  and  jumper  block 
allow  you  to  use  the  memory-extending  Bank 
Select  Logic  features  of  your  software. 

Yet,  the  SuperRam™  MemoryMaster  16K  kit  is 
just  2.1C  a  byte  at  $349.  Assembled  and  tested,  $399. 
The  SuperRam™  MemoryMaster  is  also  available 
in  24K  configuration:  3  individually  vin-ite-protectable 
8K  blocks  with  Bank  Select  Logic  capability. 
MM24K  Kit,  $499.  Assembled  and  tested,  $549. 


Or,  get  your  memory  at  a  rock-bottom  L8C  a 
byte  with  the  SuperRam™  16K  Static.  It  gives  you  4 
individual  4K  blocks . . .  plus  the  ability  to  switch- 
enable  the  Phantom  Line  for  power-up  sequencing. 
Kit,  $299.  Assembled  and  tested,  $349. 

But  if  you  really  need  a  big  helping  of  memory, 
the  SuperRam™  32K  Static  serves  up  two  individual 
16K  blocks  for  2C  a  byte.-  $649  in  kit.  Assembled  and 
tested,  $699. 

Whichever  Morrow  memory  suits  your  taste,  it 
will  run  perfectly  in  2  MHz  8080. 4  MHz  Z-80  or 
5  MHz  8085  systems.  And  meets  the  Proposed 
IEEE  S-100  Standard. 

2C  a  byte!  That's  food  for  thought.  And  they're 
ready  to  take  out  at  your  local  computer  shop.  Or  if 
not.  we  deliver.  Write  Thinker  Toys™  5221  Central 
Ave.,  Richmond  CA  94804.  Or  call  415-524-2101 
(10-4  PacificTime  any  weekday). 


(V)  Morrow  Designs 

Thinker 


Toys 


assertion  is  in  the  data  base.  To  check  for  the  existence  of 
this  particular  assertion,  we  would  execute: 

(RETRIEVE  '  (MOTHER-OF  FAY  ROBERT)) 

One  of  the  nice  features  of  LISP  is  that  it  is  so  easily 
extensible.  It  is  possible  to  build  languages  on  top  of  the 
basic  LISP  system  that  deal  with  higher  level  concepts  as 
if  they  were  primitives.  The  functions  ADD,  REMOVE, 
and  RETRIEVE  are  three  operations  in  a  language  we  are 
building  to  manipulate  assertions.  So  far,  the  language  is 
very  simple.  The  function  RETRIEVE,  for  example,  can 
only  ask  about  specific  assertions. 

There  are  many  more  interesting  questions  that  we 
would  like  the  system  to  be  able  to  answer,  such  as  "Who 
is  the  mother  of  Robert?"  In  terms  of  these  assertions  this 
question  could  be  answered  by  finding  an  assertion  that 
has  three  elements,  the  first  and  third  being  the  atoms 
MOTHER-OF  and  ROBERT,  and  the  second  element 
being  anything  at  all.  One  way  of  saying  this  to  the 
machine  is  by  using  a  pattern  such  as: 

(MOTHER-OF  ?  ROBERT) 

where  the  ?s  represent  place  holders,  meaning  that  we 
will  take  anything  in  their  positions. 

One  function,  RETRIEVE,  is  modified  to  go  down  the 
list  of  assertions  in  our  data  base  and  compare  the  pattern 
with  the  individual  assertions.  If  an  assertion  and  a  pat- 
tern match,  the  assertion  will  be  returned  as  the  value  of 
RETRIEVE.  Matching  means  that  atoms  in  corresponding 
positions  are  the  same,  except  for  ?s  in  the  pattern  that  re- 
quire only  that  something  be  in  the  corresponding  posi- 
tion in  the  assertion.  Using  our  data  base,  the  pattern 
given  above  will  only  match  one  assertion: 

(MOTHER-OF  FAY  ROBERT) 

By  taking  the  second  element  of  this  list  we  will  have 
found  the  mother  of  Robert.  In  general,  more  than  one 
assertion  in  the  data  base  can  match  a  given  pattern;  it 
just  happens  that  a  person  has  only  one  mother,  so  we 
would  not  expect  more  than  one  assertion  to  tell  us  the 
mother  of  Robert.  Suppose  our  question  is  "Who  are  the 
children  of  Fay?"<  We  can  make  a  pattern  that  represents 
this  question  by  specifying  a  MOTHER-OF  assertion 
with  FAY  in  the  mother  position,  and  a  ?  in  the  child 
position: 

(MOTHER-OF  FAY  7) 

The  function  RETRIEVE  actually  returns  a  list  of  all  the 
assertions  that  match  the  given  pattern  so  that  it  can 
accomodate  the  case  where  there  is  more  than  one  match. 
Evaluation  of  the  form: 

(RETRIEVE  '  (MOTHER-OF  FAY  ?)) 

should  return: 

((MOTHER-OF  FAY  ROBERT) 
(MOTHER-OF  FAY  ARLENE)) 


and  can  be  further  analyzed  by  a  LISP  function  to  extract 
the  names  of  Fay's  children. 

The  examples  of  assertions  presented  thus  far  have 
been  in  the  form  of  a  list  of  atoms.  Assertions  can  be  arbi- 
trary pieces  of  list  structure.  The  use  of  nested  lists  is  an 
important  tool  for  representing  the  structure  inherent  in 
the  knowledge  being  represented.  For  example,  we  may 
wish  to  represent  facts  about  the  courses  students  have 
taken  at  a  university.  There  might  be  one  assertion  for 
each  student  for  each  term  he  or  she  is  registered.  A  pos- 
sible record  would  be: 

(COURSES  BARBARA  (SPRING  1978) 
(PHYSICS-2 

ALGEBRAIC-TOPOLOGY 
AESTHETICS)) 

The  first  element  of  the  list  designates  it  as  a  record  of 
courses  taken  by  a  given  student  for  a  given  term.  This 
assertion  expresses  the  fact  that  Barbara  was  registerd  for 
the  Spring  term  of  1978  and  took  three  courses:  Physics 
II,  Algebraic  Topology,  and  Aesthetics.  With  records  of 
this  kind  and  our  pattern  matcher  we  can  ask  various 
kinds  of  questions  and  have  RETRIEVE  return  the  list  of 
assertions  that  pertain  to  the  problem.  Here  are  some 
examples: 

"Who  was  registered  for  courses  in  1976?" 
(RETRIEVE  '  (COURSES  ?  (?  1976)  ?)) 

"What  courses  did  Sam  take  during  his  college  career?" 
(RETRIEVE  '  (COURSES  SAM  7  7)) 

"What  courses  did  Barbara  take  in  Spring  of  1978?" 
(RETRIEVE  '  (COURSES  BARBARA  (SPRING  1978)?)) 

There  are  certain  questions  that  the  simple  pattern  mat- 
cher we  have  described  cannot  address,  such  as  "Who 
was  registered  for  Algebraic  Topology  in  the  Spring  of 
19787".  More  sophisticated  schemes  for  pattern  matching 
will  be  described  later.  A  simple  pattern  matcher  that  can 
handle  ?'s  in  patterns  is  very  easy  to  write  using  the  recur- 
sive control  structures  of  LISP.  It  is  described  in  the 
"Discrimination  Networks"  textbox. 

Simple  Deductions 

There  are  a  number  of  facts  that  are  not  explicitly  con- 
tained in  the  data  base  of  family  relations  described 
above  that  people  can  easily  deduce.  We  might  want  to 
be  able  to  answer  the  question  "Who  is  the  grandmother 
of  Robert?".  This  question  is  posed  to  the  system  by  the 
function  call: 

(RETRIEVE  '  (GRANDMOTHER-OF  7  ROBERT)) 

The  data  base  contains  no  explicit  GRANDMOTHER- 
OF  assertions,  so  the  function  RETRIEVE,  as  defined  thus 
far,  would  fail.  The  data  base  does  contain  enough  facts 
that  it  is  capable  of  answering  this  question.  Looking  at 
the  assertions  given  earlier  it  is  obvious  that  the  answer  is 
Lena.    How    do    we    arrive    at    this?    First    we    find    a 

Text  continued  on  page  42 


38        August  1979  ©  BYTE  Publications  Inc 


M^ 


tA^V^ 


oo' 


vv^^ 


^v»r^ 


^^ 


.vv^ 


^^ 


^Vx 


vS^^ 


vO<>^ 


w>OX>. 


This  exceptional  print  quality  for  $560! 

The  new  Comprint  model  912  printer  for  computers  and  terminals: 


■  Fast — 225  characters/ second  (170  Ipm) 

■  80  character  lines  on  S!^"  wide  paper 

■  Quiet,  non-impact  operation 

■  6  month  warranty 

Available  now  at  computer  stores  and  industrial  distributors. 


Computer  Printers  international,  inc.  340  E.  IVIiddlefield  Rd.,  Mt.  View,  CA  94043  •  415  969-6161 

Circle  48  on  inquiry  card. 


BYTE  August  1979         J9 


CAR 


PAUL         '^1^- 


Figure  1:  A  group  of  connected  assertions  can  he 
represented  by  a  tree  structure  where  the  nodes  of  the  tree 
represent  locations  within  an  assertion. 


Discrimination  Networks 

Simple  data  bases  can  be  represented  as  lists  of  the 
assertions  contained  in  them.  Each  time  we  want  to  deter- 
mine whether  or  not  a  pattern  matches  any  of  the  asser- 
tions in  the  data  base,  the  entire  list  must  be  scanned  and 
the  pattern  matcher  applied  to  each  of  its  elements.  For  a 
large  data  base  this  may  take  too  long.  We  would  like  to 
represent  the  data  base  in  such  a  way  that  the  average 
search  through  the  data  base  will  take  much  less  time 
than  a  linear  scan  of  all  the  assertions.  One  way  of  doing 
this  is  to  arrange  the  assertions  into  groups  so  that  a  par- 
tial test  of  the  pattern  can  eliminate  a  number  of  the 
groups  from  consideration.  Let's  suppose  that  we  have  a 
data  base  consisting  of  the  following  assertions: 

(MOTHER-OF  LENA  PAUL) 
(MOTHER-OF  LENA  ALVIN) 

(MOTHER-OF  LENA  FAY) 

(MOTHER-OF  FAY  ROBERT) 

(MOTHER-OF  FAY  ARLENE) 

(LIVES  SHIRLEY  TUCSON) 

(LIVES  FAY  CANARSIE) 

(LIVES  HARVEY  MANHATTAN) 

(MALE  ALVIN) 

(MALE  PAUL) 

(FEMALE  SHIRLEY) 

(FEMALE  LENA) 

(HAS  ROBERT  GUITAR) 

(HAS  ROBERT  BICYCLE) 

(HAS  PAUL  STEREO) 

(HAS  PAUL  CAR) 

One  way  of  grouping  these  assertions,  suggested  by  the 
given  list,  is  by  the  first  elements  of  the  assertions.  Thus, 


all  the  MOTHER-OF  assertions  would  be  together,  as 
would  the  LIVES,  MALE,  FEMALE,  and  HAS  assertions. 
If  the  first  element  of  the  pattern  was  the  atom  LIVES, 
then  only  one  group  of  three  assertions  need  be  exa- 
mined. Some  of  these  groups  can  be  further  subdivided; 
the  MOTHER-OF  assertions  can  be  divided  into  three 
groups  depending  upon  the  second  element  of  the  list  (the 
mother).  The  group  of  assertions  can  be  represented  as  a 
tree  structure  where  the  nodes  of  the  tree  represent  loca- 
tions within  the  assertion.  The  above  assertions  would 
appear  as  in  figure  1. 

This  tree  can  be  easily  constructed  using  the  pointers  of 
LISP.  When  an  attempt  is  made  to  check  if  the  assertion: 

(MOTHER-OF  LENA  FAY) 

is  in  the  data  base,  the  root  node  is  searched  for  a  sub- 
node  marked  with  MOTHER-OF.  If  this  is  found,  the 
search  continues,  otherwise  a  failure  is  reported.  The 
pointer  is  followed  to  the  MOTHER-OF  node.  This  is 
then  searched  for  a  LENA  subnode.  This  is  found,  the 
pointer  followed,  and  a  search  is  made  for  a  FAY  sub- 
node.  This  also  is  found,  and  it  contains  a  NIL  subnode 
indicating  that  the  assertion  ends  there.  Tracing  the  path 
leading  to  this  point  gives  the  assertion.  By  representing 
the  knowledge  in  this  way,  much  of  the  data  base  no 
longer  has  to  be  searched  to  find  what  we  want. 

This  can  be  extended  to  ?  variables  in  patterns. 
Whenever  we  try  to  compare  a  ?  against  a  node,  all  paths 
must  be  taken.  And  this  example  deals  only  with  flat  list 
structure  (ie:  lists  of  atoms).  The  concept  can  be  extended 
to  arbitrary  list  structure.  The  result  is  less  intuitive  and 
beyond  the  scope  of  this  article.  It  is  an  interesting  pro- 
blem to  think  about. 


40         Augusl  1979  ©  BYTE  Publications  Inc 


ALTOS  presents  a  new  standard 
in  quality  and  reliability 


^■^- 


WE'RE  ALTOS  COMPUTER  SYSTEMS.  Our  SUN-SERIES  ACS8000  business/scientific 
computer  creates  a  new  standard  in  quality  and  reliability  in  high  technology  computers. 


HIGH  TECHNOLOGY  The  ACS8000  is  a  single  board, 
Z80®*  disk-based  computer.  It  utilizes  the  ultra-reliable 
Shugart  family  of  8  inch,  IBM  compatible,  disk  drives.  A 
choice  of  drives  is  available:  single  or  double  density,  single  or 
double  sided.  Select  the  disk  capacity  you  need,  when  you 
need  it:  'AM,  IM,  2M,  or  4M  bytes.  The  ACS8000  features 
the  ultimate  in  high  technology  hardware:  a  fast  4  MHz  Z80 
CPU,  64  kilobytes  of  16K  dynamic  RAM,  1  kilobyte  of  2708 
EPROM,  an  AMD  9511  floating  point  processor,  a  Western 
Digital  floppy  disk  controller,  a  Z80  direct  memory  access, 
Z80  Parallel  and  Serial  I/O  (two  serial  RS232  ports,  1  parallel 
port),  and  a  Z80  CTC  Programmable  Counter/Timer  (real  time 
clock).  In  essence,  the  best  in  integrated  circuit  technology. 


COMPUTER  SYSTEMS 


BUILT-IN  RELIABILITY  The  ACS8000  is  a  true  single 
board  computer.  This  makes  it  inherently  reliable  and  main- 
tainable. The  board  and  the  two  Shugart  drives  are  easily  ac- 
cessible and  can  be  removed  in  less  than  five  minutes.  All  elec- 
tronics are  socketed  for  quick  replacement.  Altos  provides 
complete  diagnostic  utility  software  for  drives  and  memory. 

QUALITY  SOFTWARE  Unlimited  versatiUty.  The  ACS 
8000  supports  the  widely  accepted  CP/M®**  disk  operating 
system  and  FOUR  high  level  languages:  BASIC,  COBOL, 
PASCAL  and  FORTRAN  IV.  All  available  NOW. 

PRICE    ACS  8000- 1 ,  single  density,  single-sided  ['A  Mb]  $3,840 

ACS  8000-2,  double  density,  single-sided  [1  Mb]  $4,500 

ACS  8000-3,  single  density,  double-sided  [1  Mb]  $4,800 

ACS  8000-4,  double  density,  double-sided  [2  Mb]  $5,300 

Brackets  show  disk  capacity  per  standard  two  drive  system.  All 

models  come  standard  with  32  Kb  RAM  and  two  8"  disk  drives  as 

shown  above.  Expansion  to  64  Kb  is  $363  per  16  Kb.  FPP,  DMA, 

software  optional.  Dealer/OEM  discounts  available.  Delivery:  30 

days  ARC,  all  models. 

Circle  6  on  inquiry  card. 


*Z80  is  a  trademark  of  Ziloji.  Inc. 

•*CP^  M  is  a  trademark  of  Digital  Research, 


Inc. 


2338A  WALSH  AVENUE  •  SANTA  CLARA  •  CA  95050  •  (408)  244-5766 


Text  continued  from  page  38: 

MOTHER-OF  or  FATHER-OF  assertion  that  gives  a 
parent  for  Robert.  Here  we  end  up  with: 

(MOTHER-OF  FAY  ROBERT) 

Then  we  take  that  parent  (eg:  FAY)  and  find  a  MOTHER- 
OF  assertion  with  that  parent  in  the  child  position, 
giving: 

(MOTHER-OF  LENA  FAY) 

The  individual  in  the  mother  position  of  that  assertion 
is  the  desired  grandmother.  To  incorporate  this  kind  of 
knowledge  in  the  system,  the  language  is  augmented  with 
procedures  that  explain  how  to  derive  certain  facts  if  they 
are  not  in  the  data  base.  There  are  two  GRAND- 
MOTHER-OF  derivation  procedures;  one  that  checks  for 
mothers  of  fathers,  and  one  that  checks  for  mothers  of 
mothers.  They  might  be  expressed  as: 

'(TO-DERIVE  (GRANDMOTHER-OF  ?X  ?Y) 
(FIND  (MOTHER-OF  ?Z  Y)) 
(FIND  (MOTHER-OF  X  Z))) 


cedure  to  know  who  these  people  are,  it  must  bind  the 
names  to  variables.  RETRIEVE  has  to  be  extended  again. 
In  addition  to  checking  the  data  base  for  already  known 
facts,  it  checks  a  library  of  procedures  for  those  whose 
patterns  match  the  request,  trying  them  one  at  a  time. 
When  we  execute  the  RETRIEVE  function,  trying  to  find 
the  grandmother  of  Robert,  the  pattern: 

(GRANDMOTHER-OF  ?  ROBERT) 

is  matched  against  the  head  pattern  in  the  TO-DERIVE 
construct: 

(GRANDMOTHER-OF  ?X  ?Y) 

The  match  is  successful.  Y  will  get  the  value  ROBERT, 
and  X  the  value  ?  (really  no  value  at  all,  just  a  place 
holder).  The  first  line  causes  the  system  to  find  an  asser- 
tion that  has  MOTHER-OF  in  the  first  position  and 
ROBERT,  the  value  of  Y,  in  the  last  line.  Whatever  is 
found  in  the  second  position  is  assigned  to  the  variable  Z. 
For  our  particular  data  base,  the  assertion: 

(MOTHER-OF  FAY  ROBERT) 


(TO-DERIVE  (GRANDMOTHER-OF  ?X  ?Y) 
(FIND  (FATHER-OF  ?Z  Y)) 
(FIND  (MOTHER-OF  X  Z))) 

The  first  procedure  looks  for  the  mother  of  the  person 
in  the  third  slot  (eg:  the  grandchild),  and  then  her 
mother;  the  second  procedure  for  the  father  of  that  per- 
son, and  then  his  mother.  We  have  added  a  little  more 
complexity  to  the  simple  patterns  described  earlier.  These 
patterns  have  variables  associated  with  the  question 
marks.  The  first  pattern  in  these  procedures  expresses,  in 
effect,  what  the  procedure  can  do.  It  says  "If  you  want  to 
determine  if  someone  is  the  grandmother  of  someone 
else,  try  the  following."  In  order  for  the  rest  of  the  pro- 


will  be  found  and  Z  will  get  the  value  FAY.  When  the 
next  line  is  executed,  a  MOTHER-OF  assertion  is  looked 
for  with  FAY  in  the  third  position,  and  anything  at  all  in 
the  middle.  (Remember  X  has  the  value  ?.)  The  assertion 
it  will  find  is: 

(MOTHER-OF  LENA  FAY) 

What  we  have  just  done  is  derived  the  fact: 

(GRANDMOTHER-OF  LENA  ROBERT) 

Here  is  a  procedure  to  determine  whether  or  not  one  in- 
dividual is  the  uncle  of  another: 


WE'RE  NOT  JUST  THE  VIDEO  PEOPLE 


It's  true  we  built  our  reputation  on  high  precision  video  digitizers,  but  that's  not  all  we  offer. 

Take  B-08  for  example,  a  2708  EPROM  Programmer  for  the  SWTPC  6800.  All  programming  voltages  are  generated  on  board  and  controlled  by  a 
safety  switch  with  an  LED  Indicator.  An  Industrial  quality  Textool  socket  and  extended  board  height  allow  effortless  EPROf>^  Insertion  and 
retrieval.  The  source  listing  of  U2708,  our  utility  to  test,  burn  verify  and  copy  EPROMs  Is  Included.  B-08  was  our  first  product  and  we've  never 
had  one  of  them  returned  for  repair.  Price:  $99.95 

If  you're  programming  EPROI^s  a  lot,  you  might  take  a  look  at  our  PROM  System  Board.  PSB-08  features  space  for  up  to  eight  2708  EPRON^s 
and  1K  of  high-speed  scratchpad  RAN4.  The  EPROMs  are  dip-switch  addressable  for  convenience.  An  exclusive  I/O  select  option  permits  the 
user  to  move  the  I/O  locations  in  memory  to  any  block  In  EPROM  and  expand  to  56K  bytes  of  contiguous  user  RAM.  Price:  $119.95 

UIO  is  another  of  our  popular  6800  products;  It's  Just  the  thing  for  custom  Interfaces.  DIG  has  space  for  a  40-pln  wire  wrap  socket  Into  which 
you  can  plug  any  of  Motorola's  40  or  24-pin  interface  chips.  The  data  and  control  lines  are  connected  to  the  appropriate  edge  connector  pins 
with  all  other  bus  connections  brought  out  to  a  16-pin  socket  pad.  Build  circuits  In  half  the  time  with  UIO.  Price:  $24.95 

One  of  our  most  exciting  new  products  Is  a  home  controller  system.  It  won't  cost  several  hundred  dollars  and  you  won't  need  any  electrical 
engineering  experience  to  use  It.  By  mid-summer  we  will  have  units  available  for  the  S-50,  S-100,  TRS-80  and  Apple  computers.  Don't  write  us 
now;  we'll  let  you  know  when  we  are  ready  to  ship. 

Of  course  we  still  make  video  gear.  The  DS-80  for  S-100  computers  and  the  DS-68  for  6800  machines  are  In  stock.  Our  first  production  run  for 
the  Apple  will  be  available  In  early  July.  So  even  though  we  think  video  is  one  of  the  most  creative  areas  opening  up  for  micros,  we're  not  just 
the  video  people. 

P.O.  BOX  111 0  DEL  MAR,  CA  9201 4  71 4-756-2687 


42        August  1979  ©  BYTE  Publicalions  Inc 


Circle  231  on  inquiry  card. 


A  Beautiful 
Way  To  luterf  aee 


1^140 


SOROC's  first 

and  foremost 

concern,  to  -   . 

design  outstanding  \ 

remote  video  displays,  has  • 

resulted  in  the  development 

of  the  IQ  140.  This  unit 

reflects  exquisite  appearance 

and  performance  capabilities 

unequaled  by  others  on  the  market. 

With  the  IQ  140,  the  operator 

is  given  full  command  over  data 

being  processed  by  means  of  a  wide  variety 

of  edit,  video,  and  mode  control  keys,  etc. 

The  detachable  keyboard,  with  its 

complement  of  117  keys,  is  logically  — i 

arranged  into  6  sections  plus  main  keyboard 

to  aid  in  the  overall  convenience  of  operation. 

For  example,  a  group  of  8  keys  for  cursor  control  / 

14  keys  accommodate  numeric  entry  / 16  special  function  keys 

allow  access  to  32  pre-programmed  commands  /  8  keys  make 

up  the  extensive  edit  and  clear  section  /  8  keys  for  video  set 

up  and  mode  control  /  and  8  keys  control  message  and  print. 

Two  Polling  options  available:  1)  Polling  compatible  with  Lear 
Siegler's  ADIVI-2.  2)  Polling  discipline  compatible  with  Burroughs. 


ISO 


I  The  SOROC 

\  IQ  120  is  the  result 

of  an  industry- 
wide demand 
for  a  capable 
remote  video 
display  terminal 
which  provides  a 
multiple  of  features 
at  a  low  affordable  price. 
The  IQ  120  terminal  is  a  simple 
self-contained,  operator  /  computer  unit. 

'  The  IQ  120  offers  such  features  as:  1920  character 

—  screen  memory,  lower  case.  RS232C  extension, 

switch  selectable  transmission  rates  from  75  to 

19,200  bps,  cursor  control,  addressable  cursor,  erase 

functions  and  protect  mode.  Expansion  options  presently 

available  are:  block  mode  and  hard  copy  capability  with 

printer  interface.  The  IQ  120  terminal  incorporates  a  12-inch, 

CRT  formatted  to  display  24  lines  with  80  characters  per  line. 


Circle  341  on  inquiry  card. 


IBS   FREEDOM   AVE.,    ANAHEIIVI,  CALIF.   SSBOI 

C7ial  S9B-S860    /    CaOOl  BS4-0147 


lomputer 
Mssionals 


A  major  division  of  a  Fortune  50  connpany  lias 
several  openings  in  its  Software  Department. 
These  openings  are  a  result  of  expansion 
within  our  modern  Midwest  facility.  We  are 
currently  seeking  professionals  in  the  areas 
of  programming,  systems  analysis,  computer 
design,  software  engineering  and  computer 
system  engineering.  A  background  or 
knowledge  or  interest  in  any  of  the  following 
areas  may  qualify  you  to  become  a  member 
of  our  industry-leading  team: 

Mini  Computers 
l\/licro  Processors 
Real-time  Control  Systems 
Performance  l\/lodeling 
Operating  Systems 
Queuing  Theory 
Structured  Software  Design 
Large  Systems  Development 
Custom  Software  Design 
Software  Utilities 
l-lardware/Software  Trade-Offs 
Data  Base  Management 
Software  Maintenance 
'     Distributive  Processing 
Language  Development 

This  is  an  excellent  opportunity  for  you  to  join 
a  company  using  state-of-the-art  technology 
in  a  total  system  development  environment. 

Our  benefit  package  including  group  in- 
surance, company  paid  dental  plan,  tuition 
aid,  liberal  vacation  and  holiday  schedules, 
stock-option  plan,  relocation  plan,  etc  Is 
among  the  best  in  the  industry,  and  the  salary 
structure  we  have  to  offer  is  an  incentive  for 
you  to  explore  our  opportunities. 

Our  working  environment  is  conducive  to  pro- 
fessional growth  and  it  is  geared  to  the  results 
oriented  individual.  Candidates  interested  in 
any  of  these  exciting  areas,  please  rush  a 
resume  to: 

Dept.  R  W  0801 

500  N.  Michigan  Ave.,  Suite  544 

Chicago  IL  60611 

Equal  Opportunity  Employer  M/F 


The  system  chains  backwards  through 
facts  until  it  finds  some  simple  ones  it 
knows . 


(TO-DERIVE  (UNCLE-OP  ?X  ?Y) 

(FIND  (SIBLING  7Z  X)) 
(FIND  (CHILD-OF  Y  Z))) 

"To  show  one  person  is  the  uncle  of  another,  find  a  per- 
son that  is  a  sibling  of  the  first  and  a  parent  of  the 
second." 

This  procedure  would  work  if  we  had  SIBLING  and 
CHILD-OF  assertions  in  the  data  base.  Since  we  don't, 
we  must  specify  procedures  that  can  determine  these 
things  from  the  information  that  is  in  the  data  base: 

(TO-DERIVE  (SIBLING  ?X  ?Y) 

(FIND  (MOTHER-OF  ?Z  X)) 
(FIND  (MOTHER-OF  Z  Y))) 

"To  determine  if  one  person  is  the  sibling  of  another,  see 
if  they  have  the  same  mother. " 

(TO-DERIVE  (CHILD-OF  ?X  ?Y) 

(FIND  (MOTHER-OF  Y  X))) 

"To  determine  if  one  person  is  the  child  of  another,  see  if 
the  second  is  known  to  be  the  mother  of  the  first. " 

(TO-DERIVE  (CHILD-OF  ?X  ?Y) 

(FIND  (FATHER-OF  Y  X))) 

"To  determine  if  one  person  is  the  child  of  another,  see  if 
the  second  is  known  to  be  the  father  of  the  first. " 

There  are  now  two  different  procedures  for  deciding 
CHILD-OF  relations  as  was  the  case  with  the  earlier 
GRANDMOTHER-OF  relation.  If  the  system  doesn't 
already  have  the  answer  to  the  question  in  its  data  base,  it 
will  try  one,  and  if  that  fails,  it  will  try  the  other. 

Our  set  of  assertions  does  not  happen  to  contain 
FATHER-OF  assertions,  so  they  too  should  be  specified 
by  procedures.  We  do  have  MOTHER-OF  and 
HUSBAND-OF  assertions.  These  are  sufficient: 

(TO-DERIVE  (FATHER-OF  ?X  ?Y) 

(FIND  (MOTHER-OF  ?Z  Y)) 
(FIND  (HUSBAND-OF  X  Z))) 

"To  determine  if  one  person  is  the  father  of  another  see  if 
the  second  person's  mother  is  the  husband  of  the  first." 

The  control  used  by  this  system  is  often  referred  to  as 
backward  chaining.  Determining  if  someone  is  the  uncle 
of  someone  else  may  result  in  attempts  to  determine 
CHILD-OF  relations  that  may  then  result  in  determining 
FATHER-OF  and  then  HUSBAND-OF  relations.  The  sys- 


44        August  1979  ©  BYTE  Publicalions  Inc 


MOVING  DATA  AT  A  SNAIL'S  PACI 
BECAUSE  YOU'RE  FLOPPY  BOONOP 

Let  Corvus  Systems  put  you  back  in  the  race! 


^^'                   -    .dtt#.    w*>yj>»t^.,-;.^ 

------  ~--*L-''.._»^      " 

WM^^ 

^^^v; 

CORUUS         lift         CATALOC 
VOL         OIRECTOKY         ORIUE    HUIOES    I 

1  |WinM^ 

1             ^j^^Mm 

HC  SOURCE 

■  For  TRS-80t,  Apple*,  S-1 00  Bus*. 

■  Fully  compatible  hardware/software. 

■  10-millionbytedisk:IMI-7710. 

■  Proven  Winchester  technology. 

■  Z-80  based  Corvus  disk  controller. 

■  Comprehensive  disk  diagnostics. 

■  Up  to  4  disks  per  system. 

■  System  $5350,  add-on  disk $2990. 

■  30  day  delivery 


Corvus  offers  a  complete  systems  solution 
to  the  mass  storage  problem  of  micro 
computers.  In  a  pacitage  smaller  than  a 
briefcase,  we  provide  an  intelligent 
controller,  disk,  and  personality  module. 
Call  or  write  today  for  additional  information. 

Get  up  to  speed  with  Corvus. 


■'i  i-V! 


.s^fil 


tTRS-80  is  a  registered  trademark  of  Radio  Stiack.  a  Tandy  Co. 
tApple  is  a  registered  trademark  of  APPLE  Computers,  Inc. 
•S-100  pricing  siiglitly  tiigher. 


CORVaS  SYSTEMS,  Inc. 


900  S.  Winchester  Boulevard 
San  Jose,  California  95128 
408/725-0920 


circle  83  on  Inquiry  card. 


BYTE  August  1979        45 


tern  chains  backward  through  facts  until  it  finds  some 
simple  ones  that  it  knows. 

The  TO-DERIVE  procedures  are  similar  in  concept  to 
subroutines  in  many  other  computer  languages.  The  dif- 
ference is  that  subroutines  are  usually  called  by  name.  If  I 
want  to  compute  a  cosine  I  call  the  subroutine  COS.  Pro- 
cedures in  these  languages  are  invoked  by  a  pattern  that 
indicates  what  they  can  accomplish.  The  procedure  that 
determines  if  one  person  is  the  uncle  of  another  has  no 
name;  it  indicates  by  its  pattern  (UNCLE-OF  ?X  ?Y)  that 
it  is  capable  of  determining  whether  or  not  one  person  is 
the  uncle  of  another.  This  distinction  is  an  important  one. 
As  shown,  more  than  one  procedure  may  have  the  same 
pattern.  This  will  not  disturb  the  system.  It  will  try  one, 
and  if  that  fails,  it  will  try  others  until  it  finds  one  that 
works.  One  TO-DERIVE  procedure  can  serve  several 
purposes.  The  UNCLE-OF  procedure  is  capable  of 
answering  three  different  kinds  of  questions: 

'7s  Harold  the  uncle  of  Robert?" 

"Who  are  the  nephews  of  Harold?" 

"Who  are  the  uncles  of  Robert?" 

Better  Pattern  Matchers 

The  ease  with  which  concepts  can  be  expressed  in  the 
language  depends  significantly  on  the  sophistication  of 
the  pattern  matcher.  The  pattern  matcher  described  so  far 
is  of  the  simplest  kind.  Many  things  we  would  like  to  say 
are  difficult  or  impossible  to  do  with  it.  There  is  no  such 
thing  as  an  "ideal  pattern  matcher."  One  can  always 
come  up  with  more  sophisticated  ways  to  create  patterns. 
This  section  is  devoted  to  discussing  two  fairly  well 
known  extensions  known  as  unpack  and  multisets. 

Earlier  we  were  concerned  with  a  data  base  of  asser- 
tions representing  information  about  students  taking 
courses  at  a  school.  The  assertions  were  of  the  form: 

(COURSES  BARBARA  (SPRING  1978) 
(PHYSICS-2 

ALGEBRAIC-TOPOLOGY 
AESTHETICS)) 


and  it  was  impossible  to  phrase  questions  of  the  form 
Who  took  Algebraic  Topology  in  the  Spring  of  1978?" 
The  reason  that  this  is  impossible  to  indicate  is  that  the 
atom  ALGEBRAIC-TOPOLOGY  can  occur  as  any  ele- 
ment of  a  list  with  zero  or  more  atoms  in  this  list,  before 
and  after  it.  The  problem  can  be  dealt  with  by  the  intro- 
duction of  the  unpack  operator.  This  operator, 
represented  by  an  exclamation  point  !,  is  placed  before 
the  question  mark  variable.  A  7  without  a  !  matches  ex- 
actly one  object.  A  !?  combination  will  match  zero  or 
more  objects.  Here  are  some  examples  of  patterns: 

(FOO  !?  BAR)  matches  any  list  that  begins  with  the  atom 
POO  and  ends  with  the  atom  BAR: 

(FOO  BLATZ  BAR) 

(FOO  TOM  LARRY  BAR) 

(FOO  BAR) 

(FOO  17)  matches  any  list  with  FOO  as  the  first  element: 


(FOO) 

(FOO  BAR) 

(FOO  BAR  BLATZ) 

(7  !?  FOO  !7)  matches  any  list  that  contains  the  atom 
FOO  as  the  second  or  later  member: 

(XYZ  FOO) 
(XYZ  ABC  FOO  TOM  LARRY) 

With  the  unpack  operator  the  question  "Who  took 
Algebraic  Topology  in  the  Spring  of  19787"  can  be  phra- 
sed: 

(RETRIEVE  '  (COURSES  7  (SPRING  1978) 

(I7ALGEBRAIC-TOPOLOGY  !7))) 

Of  course,  if  we  were  using  the  unpack  operator  inside 
TO  DERIVE  procedures,  the  !7  would  be  followed  by  a 
variable  that  gets  bound  to  what  it  matches,  just  as  the  7 
variables. 

Another  question  we  cannot  ask  with  the  simple  pat- 
tern matcher  is  "Who  took  Algebraic  Topology  and 
Aesthetics  in  the  Spring  of  19787"  We  cannot  ask  this 
question  because  whenever  we  have  a  list  there  is  an  in- 
trinsic order  to  its  elements.  To  be  sure  of  covering  all 
cases  we  would  need  two  patterns: 

(COURSES  7  (SPRING  1978) 

(!7  ALGEBRAIC-TOPOLOGY  !7 
AESTHETICS  !?)) 

as  well  as: 

(COURSES  7  (SPRING  1978) 

(!7  AESTHETICS  !7 
ALGEBRAIC-TOPOLOGY  !7)) 

If  there  were  three  courses  then  six  different  patterns 
would  be  necessary.  We  need  a  more  general  solution.  To 
handle  the  case  where  matches  should  be  made  regardless 
of  the  order  of  the  elements,  multisets  are  introduced.  A 
multiset  will  be  denoted  by  curly  brackets  {  and  }.  A 
multiset  is  said  to  match  a  list  if  each  of  its  elements 
match  a  corresponding  element  of  the  list  (7s  and  !7s  are 
allowed).  Here  are  some  examples  of  multisets: 

{ABC}  will  match  any  list  containing  exactly  the  three 
elements  A,  B,  C: 

(ABC) 

(CAB) 

(BCA) 

{A  B  7}  will  match  any  three  element  Hst  containing  A 
and  B: 

(BCA) 
(BAR  A  B) 

(AXB) 

{A  B  17}  will  match  any  list  containing  A  and  B: 

(BA) 
(X  B  Y  Z  A  V) 


46        August  1979  ©  BYTE  Publications  Inc 


VI81MIZE 
VOIR 
WCaEMS  GftAPHQAUy 


Y=SQR( (-2»X^2-3«X)/4+SQR 
(X'-a-X^'i+C  (2*X''2  +  3»X>'^2)/4)  ) 


A2FP  GIVES  YOU  EXTENSIVE 
PLOniNG  CAPABILITIES 

Whether  you're  q  businessman,  en- 
gineer, student,  researcher  or  doc- 
tor, A2FP  con  plot  for  you  2- 
dimensionol  functions  in  HIRES 
graphics.  And  on  Cartesian  coordi- 
notes. 

You  tell  A2FP  the  domain  of  defini- 
tion ond  it  plots  the  rest  giving  com- 
plete parameters  of  plotted  curves. 
You  con  even  superimpose  differ- 
ent function  graphs.  A  whole  array 
of  disk  commends  is  included  in  the 
disk  version.  Whatever  your  plot, 
you  utilize  the  full  screen  (280  x 
192  points). 

POWERFUL  CODE  FULLY  TESTED 
A2FP  is  engineered  to  think  human. 
To  Qsk  the  questions  newcomers, 
non-mothemoticions  and  non-pro- 
grommers  need.  Then  every  test 
imaginoble  is  used  to  moke  sure 
the  progrom  performs  flawlessly. 

CLEAR,  COMPLETE  AND  LOGICAL 
DOCUMENTATION 

The  Electronic  Field  Engineer  recent- 
ly wrote:  "What  wos  particularly 
pleasing  about  the  informotion  we 
received  on  the  A2FP  is  the  docu- 
mentation.   It   is  ottroctively   pre- 


DAhF'tD  FUNCTION;   BIN(X)/X    [1-25,25] 


Y=(siN<X))^(i/x)     c-io.io: 


WiteiA2FP 
The  Awie  IL  Function  Plottep 


sented,  highly  legible,  clearly 
organized,  and  thorough.  The 
quality  of  the  documentation  tends 
to  support  the  cloims  PRS  mokes  in 
other  areas. " 

DISK  VERSION  (46K  REQ.)  NOW 
AVAILABLE 


VISIT  YOUR  NEAREST  DEALER 

Let  your  dealer  derhonstrate  the 
excellence  of  A2FP.  Only  $34.95 
per  cassette.  $54.95  per  disk.  Let 
him  show  you  the  new  concept  In 
PRS  documentation.  Use  the  cou- 
pon to  obtain  the  nomes  of  dealers 
in  your  oreo. 


r' 

I 

I 


PRS— THE  PROGRAM  OF  THE 
MONTH  CORPORATION 

257  Central  Park  West,  New  York,  N.Y.  10024 


D   Send  me  A2FP  The 

Apple  ][  Function  Plotter 


Cassettes  ($34.95  eo.) 

Floppy  Disks  (S54.95  eo.) 

Documentotlon  only  ($10  eo.) 

n    Send  me  list  of  dealers  in  my  oreo 

D    Check  enclosed  (5%  discount  for  poyment  with  order) 

a    Visa  D    Master  Charge  D    U.P.S.  COD 

Cord* Exp.  Dote 

Donk&#  


Your  cassette  (or  disk)  and  monuol 
ore  protected  in  this  beoutiful  gold- 
imprinted  folder. 

Circle  317  on  inquiry  card. 


I 
I 
I 

L. 


Signoture 

Nome   

Corporation  

Address  (no  P.O.  Box) 
City    


Telephone, 


State  _ 


Reference  8D9 


-Zip- 


BYTE  August  1979 


.J 

47 


{B  B  !?}  will  match  any  list  containing  two  or  more 
occurrence  of  B: 

(X  B  A  B) 
(B  W  S  FOO  B  BAR) 

The  question  "Who  took  Algebraic  Topology  and 
Aesthestics  in  the  Spring  of  1978?"  can  now  be  phrased: 

(RETRIEVE  '  (COURSES  ?  (SPRING  1978) 
{ ALGEBRAIC-TOPOLOGY 
AESTHETICS  !?}) 

History 

The  basic  concepts  of  pattern-directed  invocation 
originated  in  the  PhD  thesis  of  Carl  Hewitt  at  MIT  in 
1969.  The  original  Planner  language  that  was  the  subject 
of  his  thesis  was  never  implemented.  A  cut  down  version 
of  Planner,  roughly  equivalent  to  our  language  with 
ADD,  REMOVE,  and  RETRIEVE,  was  implemented  in 
1970  and  called  Microplanner. 

Microplanner  was  used  as  a  tool  in  subsequent  research 
in  artificial  intelligence  at  MIT.  The  best  known  system 
to  make  use  of  Microplanner  was  the  SHRDLU  program 
of  Terry  Winograd.  SHRDLU  was  a  program  about  a 
simulated  world  consisting  of  a  table,  variously  colored 
toy  blocks,  and  a  box.  A  person  could  type  in  English 
language  questions  and  imperatives  to  which  the  system 
would  take  an  appropriate  action,  such  as:  "What  blocks 
are  in  the  box?"  or  "Pick  up  the  big  red  block."  Assertions 
were  used  to  store  knowledge  about  the  current  state  of 
the  world,  such  as: 


Main/Frames ..  $20O 


Main/Frames  o.  $200 


>  14  Basic  Models  Available 
'  Assembled  &  Tested 

•  Power  Supply: 

8v@15A,  ±  16v@3A 
«  15  Slot  Motherboard 

(connectors  optional) 
■  Card  cage  &  guides 

>  Fan,  line  cord,  (use,  power 
&  reset  switcties,  El^l  filter 

'  8v@30A,  ±  16v@10A 
option  on  some  models 


Rack 
mounted 
from  S200 


8"  Floppy  Main/Frame 
(includes  power  for  drives 
and  mainframe)  from  $365 


Write  or  call  for  our 
brochure  which  includes  our 

application  note: 
'Building  Cheap  Computers' 

INTEGRAND 

8474  Ave.  296  •  Visalia,  CA  93277  •  (209)  733-9288 
We  accept  BankAmerlcard/Visa  and  MasterCharge 


(IN  PYRAMID  BOX) 

Procedures  implemented  simple  reasoning  involved 
with  answering  questions  and  constructing  plans  to  carry 
out  commands.  Microplanner  proved  to  be  quite  limited 
in  its  capabilities  and  spawned  several  immediate  suc- 
cessors that  embodied  sophisticated  improvements. 

QA4,  developed  by  Rulifson  and  associates  at  the 
Stanford  Research  Institute,  introduced  the  notion  of 
multiple  contexts.  Contexts  are  a  way  of  having  more 
than  one  data  base  inside  the  machine,  each  representing 
a  different  aspect  of  the  problem  at  hand.  One  context 
might  model  (ie:  contain  assertions  pertaining  to)  the 
state  of  the  world  at  some  point  of  time  in  the  past,  while 
another  might  model  the  current  state  of  the  world. 
Another  common  use  of  the  context  mechanism  is  to 
reason  about  hypothetical  worlds,  collections  of  asser- 
tions similar  but  not  identical  to  the  current  one.  A 
hypothetical  world  might  represent  what  would  happen 
;■/  the  machine  took  some  action. 

Conniver,  developed  by  Sussman  at  MIT,  introduced 
certain  notions  of  control  structure  that  seemed  lacking  in 
the  original  Microplanner.  The  system  has  a  data  base  of 
facts  and  procedures  that  are  capable  of  deducing  facts 
that  are  not  explicitly  in  the  data  base.  When  a  call  is 
made  to  RETRIEVE,  it  is  entirely  up  to  the  system  to 
choose  which  procedures  to  try,  and  in  what  order  to  try 
them.  The  simple  minded  scheme  picks  one  procedure 
and  tries  it.  If  this  does  not  work  it  picks  another.  There 
is  no  way  in  Microplanner  that  a  program  can  have  con- 
trol over  the  order  in  which  procedures  are  chosen.  Con- 
niver supplies  facilities  that  allow  the  program  to  have 
access  to  possible  choices  and  then  order  or  otherwise 
process  them. 

AMORD,  developed  by  deKleer  and  associates  at 
MIT,  keeps  a  trace,  by  means  of  justifications,  of  how 
each  fact  in  the  data  base  was  derived.  If  a  fact  is  deter- 
mined to  be  no  longer  valid,  all  facts  that  derived  from  it, 
as  determined  from  the  justifications,  are  automatically 
removed  by  the  system.  This  facility  allows  a  program  to 
conveniently  change  certain  premises  and  automatically 
update  the  rest  of  the  data  base  to  reflect  this  change. 

ETHER,  developed  by  the  author,  allows  the  program 
writer  to  let  many  operations  in  the  program  be  done  in 
parallel.  The  program  can  maintain  conflicting  world 
models  (ie:  collections  of  assertions)  that  can  be  reasoned 
about  concurrently. 

A  General  Information  Storing  Tool 

These  languages  have  been  developed  explicitly  as  arti- 
ficial intelligence  research  tools.  We  have  not  discussed  in 
any  detail  the  issues  involved  in  modeling  a  situation  in 
the  world  and  reasoning  about  it.  The  examples  given  are 
meant  to  suggest  the  possibilities  for  pattern  directed  in- 
vocation as  a  more  general  tool  for  storing  facts.  The 
need  to  store  facts  (ie:  to  create  data  bases)  comes  up  in 
all  sorts  of  situations.  As  computation  becomes  cheaper, 
more  and  more  stores  of  information  will  move  from 
paper  to  electronic  storage  media.  There  are,  of  course, 
more  efficient  ways  to  store  information  than  by 
representing  them  in  list  structure  in  a  LISP  environment. 
The  disadvantage  of  some  loss  of  efficiency  seems  to  be 
far  outweighed  by  the  increased  flexibility  in  accessing 
the  information.  ■ 


48        August  1979  ©  BYTE  Publications  Inc 


Circle  177  on  inquiry  card. 


Solve  Prolilems  JLy  Simulation 


With  simulations 
of  many  con- 
cepts, including 

•  wave  motion 

•  flying  objects 

•  artificial 
intelligence 

•  electronic 
circuits 

•  and  robot 
motion! 


zZyjBa[i%sL\\^ 


SIMULATION  is  a  collection  of 

the  best  articles  from  BYTE  Magazine  on  this  useful  computer  technique, 

plus  exciting  new  material  on  the  subject. 

SIMULATION  is  the  second  volume  in  the  Programming  Techniques  series 
on  the  art  and  science  of  computer  programming  from  byte  books. 
Editor  Blaise  w.  Liff  ick's  selection  of  material  furnishes  not  only  background 
information  from  which  the  personal  computer  user  is  able  to  write 
and  maintain  simulation  programs,  but  also  actual  programs  for 
simulating  many  situations.  Theoretical  and  practical  applications  of 
this  technique  are  explored  in  articles  dealing  with  specific  aspects 
of  simulation. 

Learn  how  to  find  solutions  to  your  problems  through  SIMULATION. 


ISBN  0-931718-13-9 


$6.0 


•   t 


Buy  this  book  at  your  favorite  computer  book 
store  or  order  direct  from  BYTE  BOOKS. 
Add  60<p  per  book  for  postage  and  handling 


E|i¥i 


"BOOKS  OF  INTEREST  TO  COMPLTER  PEOPLE" 

70  Main  street,  Peterborough,  New  Hampshire  03458 


BYTE  August  1979         49 


Anyone  Know  the  Real  Time? 


Steve  Ciarcia 

FOB  582 

Glastonbury  CT  06033 


Copyright  ©  1979  by  Steven 
A  Ciarcia.  All  rights  reserved. 


I'm  sure  you've  all  heard  the  term 
real-time,  such  as  a  real-time 
operating  system.  But,  how  many 
really  understand  its  meaning?  A  sim- 
ple definition  of  a  real-time  system  is: 
a  system  that  operates  in  real  time, 
that  is,  it  responds  to  the  need  for 
action  in  a  period  of  time  propor- 
tional to  the  urgency  of  the  need;  first 
things  are  done  first.  In  control  appli- 
cations the  system  can  be  depended 
on  to  provide  the  information 
necessary  to  base  time-dependent 
decisions  on  information  that  is  up  to 
date  as  of  the  minute  or  the  hour. 
Real  time  describes  the  processing  of 


information  in  a  sufficiently  rapid 
manner  that  the  results  of  the  process- 
ing are  immediately  available  to  in- 
fluence control  of  the  process  being 
monitored. 

While  there  are  particular  architec- 
tural enhancements  in  high-speed 
process  monitoring  and  control  sys- 
tems, basically  any  computer  can  be 
configured  to  perform  some  semb- 
lance of  real-time  operations.  The 
essential  criterion  is  that  the  com- 
puter be  capable  of  performing  a 
specific  action  at  a  particular  time. 
The  extent  of  real-time  operation  then 
becomes  dependent   upon  execution 


•T 

r.-nro  o  o  .-■  o  . 

■•  r.  -■ 

n  o  e  r>  r  r 

^'Wv  i.i  -y-'      j 

)>  «  c  •  *  p  Ki  (;.  n  -  ■  r.  • 

r  ,-  r,  m  r  r. 

)  .  ,  .  )r-r 

■ 

1  i'miiTrtC»*,t;'f\'. 

•      • 

• 
• 

Photo  1:  A  prototype  board  of  real-time  clock  mounted  on  the  back  of  an  existing 
parallel  I/O  (input/output)  board.  Two  reed  switches  on  the  left  side  of  the  board  are 
for  manual  setting  of  the  clock.  The  empty  sockets  are  used  for  the  particular  applica- 
tion for  which  this  board  was  designed,  a  home  security  system. 


speed.  If  a  program  that  takes  1 
second  to  analyze  a  data  input  and 
display  it  on  the  video  display  is  to 
run  in  real  time,  it  can  only  be  called 
once  per  second.  For  continuous 
sampling  this  also  means  that  the 
computer  cannot  be  tied  up  doing  any 
other  task  without  provision  being 
made  for  that  program  to  be  inter- 
rupted so  that  the  analysis  program 
can  run.  Most  often,  computers  uti- 
lize hardware  priority  interrupts  to 
provide  this  capability.  A  direct 
benefit  of  this  approach  is  that  all 
programs  can  execute  asynchronous- 
ly, since  interrupt  logic  synchronizes 
the  computer's  action  upon  the  occur- 
rence of  a  real-time  event.  Further 
discussion  of  interrupts  will  continue 
later  in  this  article. 

A  second,  slightly  less  complex 
method  of  synchronizing  computers 
to  real-time  events  is  through  a 
technique  of  status  scanning  (or 
device  polling).  This  software- 
intensive  situation  requires  that  all 
devices  demanding  real-time  interac- 
tion set  status  flags  to  indicate  ready 
conditions.  The  computer  scans  these 
flags  periodically  and  performs  the 
appropriate  action.  The  flags  are  reset 
when  the  devices  have  been  serviced. 
It  is  important  to  keep  in  mind  that  all 
the  programs  that  the  computer  nor- 
mally executes  must  be  short  enough 
to  allow  the  computer  to  service 
every  device.  Also,  care  must  be 
taken  to  design  the  system  so  that  a 
second  event  cannot  occur  on  an  in- 
dividual device  before  the  computer 
has  acknowledged  the  first  event. 

Most   sophisticated   real-time   sys- 


50        August  1979  ©  BYTE  Publications  Inc 


Qa         80 


1C3 

7490 

-10 


"on)   "0(21   "9(1)   "g(2)    Oo 


rn 


0 


TTL    LEVEL    INTERRUPTS 
TO    COMPUTER 


figure  1:  A  simple  time-base  generator  for  an  interrupt-driveri  real-time  clock. 


terns  use  a  combination  of  these  two 
methods.  A  clock  circuit,  such  as  that 
in  figure  1,  provides  a  time  "tick"  to 
the  processor's  nonmaskable  inter- 
rupt line.  This  can  be  every  60th, 
10th,  or  1  second,  as  suggested  in  this 
schematic.  When  the  computer  ack- 
nowledges the  interrupt,  it  first  saves 
all  registers  from  the  program  it  was 
executing,  and  then  services  the  real- 
time interrupt.  Frequently  the  first 
action  is  to  increment  an  internal 
counter  which  keeps  track  of  elapsed 
time.  Usually  it  will  be  a  value  equi- 
valent to  the  total  number  of  clock 
ticks,  whether  in  seconds  or  milli- 
seconds. Once  this  regular  interval 
has  been  established,  it  is  easy  for  the 
computer  to  scan  all  status  flags  from 
real-time  devices.  The  addition  of 
more  real-time  activities  for  the  pro- 
cessor does  not  entail  multiplying  the 
number  of  interrupt  lines,  but  rather 
it  simply  entails  placing  another 
status  flag  on  the  list  of  those  to  be 
checked  on  each  clock  tick. 

The  choice  of  a  totally  interrupt- 
driven  real-time  system,  a  combina 
tion  scan  and  interrupt  type,  or  a 
total  scanning  system  is  dependent 
upon  the  quantity  of  real-time  opera- 
tions and  their  frequency.  An  inter- 
rupt-driven  system  can  process  infor- 
mation faster  than  the  same  system 
configured  for  real-time  scanning. 

Real  Time  Applications  for 
Personal  Computers 

So  far  I  have  emphasized  the 
system  attributes,  but  nowhere  have  I 
discussed    applications,    particularly 


personal  computing  applications. 
Clock  divisions  down  to  milliseconds 
sound  great  and  make  interval  timing 
extremely  accurate,  but  I  doubt  that 
the  majority  of  home  computerists 
would  want  something  that  complex 
to  integrate  into  their  system.  If  my 
mail  is  any  indication  of  this,  they 
would  prefer  the  design  of  a  real-time 
clock  which  can  be  directly  applied  in 
home  control  applications.  Automa- 
tically turning  on  the  percolator  at 
6:45  AM  would  be  far  more  stimu- 
lating than  a  high-speed  data  acquisi- 
tion system  which  few  would  need. 


Build  a  Real-Time  Clock 

Essentially,  the  kind  of  real-time 
system  which  might  appeal  to  per- 
sonal computer  users  is  one  with  a 
resolution  of  perhaps  1  minute  rather 
than  1  ms.  It  should  be  read  directly 
in  hours  and  minutes  like  a  4-  or 
6-digit  clock  and  not  just  total  counts. 
A  direct  benefit  of  low  resolution  is 
reduced  overhead.  The  computer 
does  not  have  to  acknowledge  the 
clock  update  or  scan  status  flags  as 
often.  It  may  not  seem  like  much  of  a 
time  savings,  considering  instruction 
execution  speeds  of  1  fis.  However, 


DEUICE 

fCTIUfiTION 

DEfaiUfiTION 

HWSFNTSTftTE 

l.Night  Light 
Z.Driueway  flood 
3. Coffee  Perk 
4.  Water  Softener 
5. Outside  Lights 
6. Thermostat  Dn 
7.  Bedroom  TU 
e.Dehufflidtfier 

m 

e645 

2800 
2300 

0700 
0300 

8130 
2230 

am 

0430 
0530 

1800 

ON 

OF 

OF 

OF 

CF 

ON 

OF 

CF 

PRESENT  Tin 

— 23  Hours  47  Minutes — 

SYSTEM  STftTUS 

*iK«*K0K 

GREEN    mm 

Photo  2:  A  typical  application  of  a  real-time  clock.  This  display  is  from  my  computer- 
controlled  security  system. 


August  1979  ©  BYTE  Publications  Inc        51 


50  Hz  OR 
60Hz 


C^ 


FAST/SLOW  I — V. 
SET  I ^ 


MULTIPLEXER 
CLOCK  I — v>_ 


-5     OR   -6 


TIME  PRESET   LOGIC 


V   HOURS 


i  MINUTES 


12    OR  v24 


r60 


SECONDS 


■^60 


HOURS,  MINUTES.  AND  SECONDS  MULTIPLEXER 


MULTIPLEX 
TIMING 


DECODER 


-d>  BCD  OUTPUT 


I — ^  7-SEGMENT 
~ OUTPUTS 

-[3>  DIGIT  ENABLE 


Figure  2:  The  block  diagram  for  a  typical  clock  chip. 


TYPICAL    7-SE6MENT 
CLOCK    DISPLAY 


SEGMENTS 


■hi' 


BCD 


a 

b 

c 

d 

e 

f 

g 

X 

X 
X 

X 
X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

X 

/  I 
u 

I 
I 

3 
_l 

w 

5 

S 

-i 

n 
o 
o 

D 


Figure  3:  A  comparison  of  output  codes  from  7-segment  and  BCD  (binary  coded 
decimal)  clock  chips. 


8 

4 

2 

1 

0 

0 

0 

0 

0 

0 

0 

1 

0 

0 

1 

0 

0 

0 

1 

1 

0 

1 

0 

0 

0 

1 

0 

1 

0 

1 

1 

0 

0 

1 

1 

1 

1 

0 

0 

0 

1 

0 

0 

1 

the  interrupt  routine  could  be  30 
bytes  and  100  /xs  long.  If  called  every 
millisecond  it  would  eat  up  10%  of 
the  total  cycle  time — just  to  incre- 
ment a  counter!  When  it  comes  to  real 
time,  be  careful  not  to  byte  (sic)  off 
more  than  you  can  process. 

The  easiest  way  to  provide  an 
hourly  and  minute  by  minute  input  is 
to  interface  the  computer  to  an 
MOS/LSI  (metal  oxide  semiconduc- 
tor/large scale  integrated)  clock 
device  such  as  that  found  in  most 
digital  clocks  or  watches.  The  block 
diagram  of  a  typical  clock  chip  is 
shown  in  figure  2.  This  LSI  device 
replaces  about  22  TTL  (transistor- 
transistor  logic)  chips  once  necessary 
to  perform  the  same  function,  and 
consumes  very  little  power,  allowing 
battery  standby  operation.  The  cir- 
cuit of  figure  1  uses  inexpensive  TTL 
rather  than  CMOS  (complementary 
metal  oxide  semiconductor)  because 
battery  backup  is  irrelevant  if  the 
computer  cannot  acknowledge  inter- 
rupts in  a  powered  down  state.  Figure 
3  illustrates  the  logic  of  the  BCD 
(binary  coded  decimal)  and 
7-segment  output  lines. 

There  are  two  approaches  to  the 
design  of  a  clock  interface.  One  ap- 
proach is  to  let  the  clock  circuit 
operate  independently  from  the  com- 
puter, attached  in  such  a  way  that  the 
computer  is  able  to  monitor  this  acti- 


52        AugusI  1979  ©  BYTE  Publications  Inc 


A  New,  Easy  to  Learn 
Microcomputer  r^ 
Language  / 


BASEX 

ISBN  0-931718-8  ^^^ 

$8.00 


Buy  this  book  at  your  favorite 
computer  bookstore  or 
order  direct  from 
BYTE  BOOKS. 

Add  60<p  for  postage 
and  handling. 


BASEX  Is  a  fast  and 
compact  language  which  im- 
proves on  some  of  the  best  features 
of  both  BASIC  and  the  8080  Assembly  language. 
BASEX  programs  typically  execute  five  times  faster 
than  equivalent  BASIC  programs,  while  requiring  less  than 
half  the  memory. 

The  BASEX  compiler  is  written  in  the  BASEX  language  and 
combines  the  functions  of  editing,  compiling,  and 
initiating  the  execution  of  programs  to  improve 
memory  efficiency.  Author  Paul  Warme  has 
even  included  a  BASEX  loader  program  i-^-^. 

to  relocate  programs  anywhere  y  imUlr 


in  memory. 


-BOOKS  OF  INTEREST  TO  COMPUTER  PEOPLE- 


TO  Main  Street,  Peterborough,  New  Hampshire  05458 


Circle  36  on  inquiry  card. 


BYTE  AuBUsI  1979         53 


CLOCK    GENERATOR 


r 
t 


CRYSTAL 


60  Mz 


0 

b 
c 

SEGMENTS (   d 

e 

f 

.9 
HIO 

HI 
MIO 

Ml 
SIO 
>  SI 

TYPICAL 

MOS 

CLOCK   CHIP 


DIGIT  ( 


CD4050 


CMOS/MOS 
TO  TTL 
CONVERSION 


Figure     4:     A     real-time     interface     im- 
plemented using  a  typical  clock  chip. 


6   DIGIT  DISPLAY 


V 


V 


V 


a      b     c      d      e      f      g 


iD-un-~/r 
M_  •   I  u  •  _i  O 


V 


V 


Y 


V 


V 


V 


V 


13 


14     CD4050 


V 


I       2      3     4       5      6 

j  74147 

'  C       B      A 


PRIORITY 
ENCODER 


000 

be   b|     bo 


b7  be 


t>5    b^    63 


PARALLEL    INPUT  PORT 


DIGITAL  LOGIC  DESIGN  ENGINEERS    -    MARKETING  PRODUCT  SPECIALISTS 


M 
DC 
LU 
UJ 


o 

Z 
UJ 


< 
o 

_l 

Q. 

< 


in 


oc 

LU 

< 
oc 
a 
o 
cc 
a. 

CO 

cc 
m 

OC 

< 


GET  TO  KNOW  CODEX 

We're  Codex,  producers  of  high  speed  state-of-the-art  data  communications 
equipment,  and  we're  known  as  the  best  in  the  industry.  Because  we're  growing  at 
a  phenomenal  rate,  we  need  individuals  with  all  l<inds  of  bacl^qrounds,  experience, 
and  interests  who'd  like  the  challenge  and  excitement  of  working  with  the  leader 
in  its  field. 

GET  TO  KNOW  CODEX 
EVEN  BETTER 

If  Codex  sounds  good  to  you,  clip  out  the  coupon  and  send  it  to  me,  Gary  Davis, 
Corporate  Employment  Manager.  I'll  send  you  a  package  of  information  about 
Codex  so  you  can  get  to  know  us  even  better.  Then  if  you  think  we've  got  what  it 
takes  to  improve  your  career,  send  us  the  enclosed  application. 

YOU  WILL  NOT  BE  CALLED  unless  you  indicate  interest  in  Codex  by  returning 
an  application  or  resume  to  us. 


Clip  out  this  coupon  and  send  to:  Gary  Davis,  Corporate  Employment  Mana- 
ger, CODEX  CORPORATION,  20  Cabot  Boulevard,   Mansfield,  MA  02048. 

Dear  Mr.  Davis: 

Please  send  me  information  about  career  opportunities  at  Codex  Corporation. 


Name_ 


Address- 


Street 
My  current  job  title  is. 


City 


State 


Zip  Code 


BY 


code>^ 

coOorOTion 


A  Subsidiary  ol  MO  TOROLA  INC 
20  Cabot  Boulevard,  Mansfield,  MA  02048 

An  Equal  Opportunity  Employer  M/F 

SOFTWARE  DESIGN  ENGINEERS  -  MICROPROCESSOR  DESIGN  ENGI 


CO 

> 

m 
w 
33 
m 
■o 

30 

m 
m 


< 
m 
en 


m 

r- 
O 
CO 

m 

30 

< 

o 
m 

m 

z 
o 

z 
m 
m 

30 
CO 

H 

m 

CO 

-i 
m 
z 
o 

z 
m 
m 

30 
CO 


NEERS 


vity  and  extract  a  time  value.  The  se- 
cond approach,  which  I  prefer,  is  to 
give  the  computer  complete  control 
over  the  information  flow  of  the 
clock  in  a  synchronous  manner.  This 
design  makes  the  interface  speed  inde- 
pendent and  allows  it  to  be  used 
directly  with  high-level  languages. 

Figure  4  shows  the  typical  real-time 
clock  interface.  In  this  design  the 
clock  is  configured  in  the  usual  man- 
ner to  drive  a  6-digit  light  emitting 
diode  display.  The  clock  runs  inde- 
pendently with  the  display  multiplex- 
ing rate  (about  1  kHz)  set  by  a 
resistor/capacitor  combination  at- 
tached to  the  chip.  Five  of  the 
7-segment  drive  lines  are  level  shifted 
and  buffered  for  TTL  through  a  CD 
4050,  and  the  6  digit  lines  are  priority 
encoded  to  produce  a  3-bit  binary 
value  for  transmission  to  the  com- 
puter of  the  energized  digit-enable 
line.  The  3-bit  digit  and  5-bit  segment 
codes  are  combined  to  produce  a 
single  8-bit  byte  interfaced  to  a 
parallel  input  port. 

In  operation,  the  computer  pro- 
gram first  looks  at  bits  bo  thru  b2  to 
determine  which  digit  of  the  display 
to  activate.  Then  it  reads  bits  h^  thru 
hy  and  compares  them  to  a  table  to 


54        August  1979  ©  BYTE  Publicalions  Inc 


Circle  44  on  inquiry  card. 


25^750 


THE  TRAP  DOOR 


DJAJEY 


September  1977 


March  1979 


Byte  Cover  Prints 
Limited  Editions 


The  September  '77  and  March  '79  covers  of  BYTE 
are  now  each  available  as  a  limited  edition  art  print, 
personally  signed  and  numbered  by  the  artist, 
Robert  Tinney. 

These  prints  are  strictly  limited  to  a  quantity  of  750 
for  each  cover,  and  no  other  editions,  of  any  size, 
w/ill  ever  be  published.  Each  print  is  18"  x  22", 
printed  on  quality,  coated  stock,  and  signed  and 
numbered  in  pencil  at  bottom. 


The  price  of  each  print  is  $25.  This  includes  1)  a 
signed  and  numbered  print;  2)  a  Certificate  of 
Authenticity,  also  signed  personally  by  the  artist 
and  witnessed,  attesting  to  the  number  of  the  edi- 
tion (750),  and  the  destruction  of  the  printing  plates; 
and  3)  first  class  shipment  in  a  heavy-duty  mailing 
tube. 


To  order  your  limited  edition  art  print, 
mail  the  order  form  below. 


II  out  and 


Send  me "Breaking  the  Sound  Barrier" 

prints  at  $25  each,  and "Trap  Door" 

prints  at  $25  each.  I  understand  this  price  in- 
cludes Certificate  of  Authenticity  and  first  class 
shipment. 

D  I   have  enclosed  check  or  money  order 

to  Robert  Tinney  Graphics. 
D  Charge  this  to  my  Master  Charge  or  Visa 


Card  #_ 


Expires:. 


Ship  my  print(s)  to: 
Name 


Address. 
City 


State- 


.Zip. 


Send  order  to: 

robert  tinney  graphics 

P.O.Box  45047-  Baton  Rouge.  LA  70895 


o 


Circle  369  on  inquiry  card. 


BYTE  Augusl  1979         55 


12V  CRYSTAL 

4  5-36pF  3.579545MHz 


■^  lOO^F 
'^   25V 


rh 


r" 


l_. 


-^ 


20pF 


CRYSTAL 


-^1 1       —  |22M 

33pF 
-^1 


OSCILLATOR 
IN 


IC2 
MM5369 


OSCILLATOR 
OUT 


60H2 
I  16 


H2V 


y  Y. 


^~^  r 

I  I 

I  I 


+  i2V 


IC3  I      I 

C04049   I 


♦     lOK                't'    IOK                ♦     lOK 
I — Vy« — (I  I — VA — II  I V^r-<i 

6  4  2 

Ag  o     IC5 

A     A"" 


IOK  22 


({^  INPUT 


BCOl 
BCD2 
BCD4 
BCD8 


Ml 


ICI 
MM53I2 


I  PPS 

FAST  SET  MIO 

SLOW   SET  HI 

MULTIPLEX         HIO 
50/60H2 


1? 


r' 


24 


1> 


0,1 


'^ 


■^ 


I  CD4049  I 


I  CD4049  I 

21    I  3|       ,    2 


20  I    5 


I 
19    I 


^ 


^ 


18    I    9 


o 


'^ 


~^ 


_j    I 


0     0 


0      0 


5a 


0 


OPTIONAL 
INTERRUPT  INPUTS 


FROM  PARALLEL 
OUTPUT  PORT 


ODODOOOO 

b7    be    bg  b4    bj    b2    b|    bg 


DIGIT  ENABLE    BCD  VALUE 
OUTPUTS 


TO  PARALLEL 
INPUT  PORT 


5b 


HIO       Hi       MIO       Ml        SIC       SI 
9       ^        Q        ^        ^        ^ 


r" 


V 


!C7 
CD4060 


L. 


+  5V 


V 


V 


V 


V 


n 


V 


6    5    4    3    2    1 


INPUTS 


IC6 
74147 


8  I  INPUTS 

9  I  OUTPUTS 


y 


C 


B 


~-^-     0     0     0 

b?      be      bg      b4 


5c 


+  12  TO  15V 
FROM 

COMPUTER 
A 


IN4002 


IN4002 

-H4— 


CLOCK 
INTERFACE 


T 


tI^    12V 

BATTERY 


Number 

Type 

+  5  V 

GND 

+  12  V 

ICI 

MM5312 

— 

23 

13 

IC2 

MM5369 

— 

8 

2 

IC3 

CD4049 

1 

8 

— 

IC4 

CD4049 

1 

8 

— 

IC5 

7406 

14 

7 

— 

IC6 

74147 

16 

8 

— 

IC7 

CD4050 

1 

8 

— 

Figure  5:  Design  for  a  real- 
time clock  which  can  be  syn- 
chronously controlled  by  a 
BASIC  or  machine  language 
routine.  5a  shows  the  sche- 
matic diagram;  asterisks  in- 
dicate lines  which  should  be 
opened  to  prevent  loss  of 
time  data  when  the  computer 
is  powered  down  and  the 
interface  is  used  with  battery 
backup.  5b  shows  an  alter- 
nate configuration  for  a 
6-digit  clock  when  using  an 
MM5311  integrated  circuit. 
5c  shows  the  circuit  for  bat- 
tery backup  operation.  The 
clock  interface  requires  12 
mA  from  the  battery  during 
standby  (indicated  by  the 
arrow). 


56        August  1979  ©  BVTE  Publications  Inc 


determine  which  character  is  being 
displayed.  (Only  5  of  the  7  segments 
are  necessary  to  perform  this  com- 
parison.) This  process  is  repeated  5 
more  times  as  the  chip  sequences 
through  the  other  digits.  The  final 
result  is  formatted  into  hours, 
minutes,  and  seconds.  The  entire 
operation  takes  about  10  ms  and  re- 
quires that  the  program  be  written  in 
machine  language. 

If  you  can  believe  the  claims  of  the 
manufacturers,  there  are  now  more 
computers  in  use  that  run  BASIC 
rather  than  machine  language  as  their 
primary  mode  of  interactive  com- 
munication. While  it  is  still  possible 
to  manipulate  individual  bits  and 
write  machine  language  device  con- 
trol subroutines  for  these  computers, 
their  owners  are  obviously  more 
familiar  with  high-level  languages 
and  would  necessarily  feel  more  com- 
fortable with  a  clock  design  which 
could  be  controlled  in  BASIC  as  well 
as  machine  code.  Figure  5  demon- 
strates such  a  design. 

This  circuit,   which   can  be   man- 


MULTIPLEX  TIMING   INPUT 


Ji n n n_ji 


MINUTES  (UNITS) 


MINUTES  (TENS) 


HOURS   (UNITS) 


HOURS   (TENS) 


INDICATES    THAT   BCD  LINES  CONTAIN  VALID  DATA  FOR 
RESPECTIVE   DIGIT  DURING  THIS   PERIOD    (AFTER 
APPROXIMATELY    200/iSEC   SETTLING  TIME  ) 


Figure  6:  Display  multiplex  timing  sequence  for  the  circuit  in  figure  5. 


ually  or  automatically  preset,  is  fully 
static  and  allows  the  display  output 
lines  to  be  completely  under  program 
control.  The  basic  5-chip  interface 
consists  of  a  4-digit  BCD/7-segment 
output     clock     type     MM5312,     an 


MM5369  time-base  generator,  2 
MOS  to  TTL  buffers  to  send  data  to 
the  microprocessor,  and  1  TTL-to- 
CMOS  converter  for  processor  con- 
trol over  the  clock  chip.  Time  is  read 
by  the  computer  as  4  binary  coded 


a  new  star 


•Xvf    .1 


~  "  most  kits  offer  stand-alone  application  ability 
P.O.  BOX  35879      TUCSON,  ARIZONA  85740 


in  western  skies... 


NALOG  FUNCTIONS 

in  kit  form  < 


SENSORS 

,SDUCERS 

I  MEMORIES 

»S  FUNCTIONS 

,      CONVERTERS 

_    ID   OTHER  INTERFACE  FUNCTIONS 

FOR  INDUSTRY  •  BUSINESS  •  EDUCATION 
•  COMPUTER  HOBBIESTS  •  WM 


QK-100 
QK-101 
QK-103 
QK-105 
QK-110 

QK-112 

QK-122 

QK-124 
QK-900 


AVAILABLE  NOW! 

"Q  =  QUALITY" 

TRIPLE  A->  D  CONVERTERS $36  ^^ 

DUAL  AIR  TEMPERATURE  SENSORS  26.^5 

POWER  SUPPLY  &  DUAL  SOCKETS. .29.^^ 

DUAL  PHOTO  DETECTORS 27 .^^ 

MULTIPLIER,  VOLTAGE-CONTROLLED 

AMPLIFIER  COMBINATION.    43.'' 

PEAK-SENSE  &  HOLD/SAMPLE 

AND  HOLD  28.^^ 

DUAL  INSTRUMENTATION 

AMPLIFIERS 24.5= 

LOG  &  ANTI-LOG  COMBINATION  ..    40.'= 

SOCKET/MOUNTING  BOARD 8.'= 


Q 


—    » 

master  charge 

L.  '"■ -■ 

ViSA' 

(602)  299-9831 


dealer 
inquiries 
welcome 


a  division  of  j.r.  conwell  corporation 


Circle  81  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        57 


Listing  1:  Program  for  the  real-time  clock. 


LIST 

100 
110 
120 
130 
140 
150 
160 
170 
180 
190 

200 
210 
220 
230 
240 
250 


REM 

REM 

REM 

REM 

REM 

REM 

OUT 

1  f 

REM 

REM 

DEC 

Ml^- 

M2== 

H 1  ■■■■: 

H2^= 

PR  I 

OUT 


REAL  TIME  CLOCK 

COF'YRIGHT  1979  STEVEN  CIARCIA 

THIS  SIMPLE  PROGRAM  ALLOWS  A  COMPUTER  TO  TELL  TIME  BY 

INTERF-.-1CING  A  DIGITAL  CLOCK  CHIP  TO  AN  I/O  PORT.  (PORT  8  IN  THIS  EXAMPLE) 

THE  DISPLAY  MUX  LINE  IS  CONTROLLED  BY  THE  COMPUTER.  FIRST  IT  IS  PULSED  UNTIL 

IT  IS  SET  ON  THE  LEAST  SIGNIFICANT  DIGIT 

8»1  :OUT  8.0  :  T==INP(8)  :D  =  T  and  16 

D=16  THEN  200  ELSE  160 
ONCE  THE  LSD  POSITION  IS  SET  THE  4  SUCESSIUE  READINGS  ARE  TAKEN 
THE  INPUT  PORT  DATA  IS  ANDED  WITH  15  TO  OBTAIN  THE  BCD  iJALUE  (REMEMBER r BASIC  USES 

I  MAD 


T  AND  15  :G0SUB  250  :REM 

T  AND  15  :G0SUB  250  :REM 

T  AND  15  JGOSUB  250  JREM 

T  AND  15  :G0SUB  250  :REM 

NT  h2;hi? " : " ;m2;mi  :goto 


MINUTES  (UNITS) 
MINUTES  (TENS) 
HOURS  (UNITS) 
HOURS  (TENS) 
160 


8fi  :ouT  8r0  :t==inp(8) :return  :rem  advance  display  mux 


RE  ADY 


decimal  numbers.  In  a  4-digit  clock 
like  the  one  in  figure  5,  the  data  ap- 
pears as  a  digit-enable  output  and  an 


associated  BCD  value.  The  tens  of 
minutes  data  is  available  when  bit  bj 
is  high  (bits  b,,  be,  and  h,  are  low).  It 


NOW,  FROM  MOUNTAIN  HARDWARE. 

THE  100,000  DAY  CLOCK. 


Put  your  S-100  Computer 
on  the  clock. 

A  real  time  clock  could  (double  the 
utility  of  your  computer.  Time  events 
in  100/LtS  increments  for  up  to  100,000 
days  (over  273  years).  Program  events 
for  the  same  period  with  real  time 
interrupts  that  permit  pre- 
programmed activities  to  take 
place... without  derailing  on-going 
programs.  Maintain  a  log  of  computer 
usage.  Call  up  lists  or  appointments. 
Time  and  date  printouts.  Time  events.  An 
on-board  battery  keeps  the  clock  running  in 
the  event  of  power  outage. 

Mountain  Hardware  also  offers  a  complete  line 
of  peripheral  products  for  many  fine  computers. 


ss 


Available  at  your  dealer's.  Now. 

Mountain  Hardware,  Inc. 

300  Harvey  West  Blvd. 
Santa  Cruz,  CA  95060     (408)  429-8600 


will  appear  as  a  BCD  quantity  in  bits 
bo  thru  hi.  Unlike  the  circuit  of  figure 
4,  this  unit  is  static  and  has  no  display 
to  drive.  It  will  stay  on  a  particular 
digit  until  it  is  instructed  to  sequence 
to  the  next  digit.  This  is  accomplished 
by  controlling  the  display-multiplexer 
input  line  of  the  clock. 

Figure  6  shows  how  the  multiplexer 
line  is  controlled  in  this  application. 
Bit  0  of  an  output  port  (port  8  in  my 
example)  is  used  to  pulse  multiplexer 
input  pin  22.  At  any  time,  1  of  the  4 
digit-enable  output  lines  will  be  low 
(at  the  chip),  indicating  that  the 
multiplexer  is  set  on  that  digit.  The 
data  on  the  BCD  lines  is  for  that  digit. 
Reading  the  next  digit  is  simply  a  case 
of  pulsing  bit  bo  again.  There  is  no 
time  constraint  either.  You  can  wait 
10  minutes  between  digits  if  you  wish 
(but  the  data  won't  mean  much).  It  is 
best  to  read  the  4  digits  sequentially. 
The  circuit  is  easily  interfaced  and 
exercised  in  BASIC  as  demonstrated 
in  listing  1.  The  flow  diagram  of  this 
program  is  shown  in  figure  7. 

The  addition  of  2  more  gates  con- 
nected to  output  bits  bi  and  b2 
facilitate  automatic  time  preset. 
Figure  8  follows  the  logic  of  how  such 
a  program  could  be  written.  Two 
magnetic  reed  switches  shown  in 
photo  1  can  be  attached  between  pins 
14  and  15,  respectively,  and  ground 
to  allow  manual  preset  as  well.  I  find 
that  it  is  easier  to  just  turn  on  the 


58        August  1979  ©  BYTE  Publications  Inc 


Circle  257  on  inquiry  card. 


c 


START 


"*- 


3 


PULSE 

DISPLAY  MULTIPLEX 

INPUT 


IS  DISPLAY 
I         MULTIPLEX    IN  ^- 

I  Ml   POSITION 


Ml  =  MINUTES  (UNITS) 
M2=  MINUTES  (  TENS) 

H  I   =  HOURS  (UNITS) 
H2  =  HOURS  (TENS) 


READ    Ml    IN    BINARY 
CODED   DECIMAL 

PULSE 

DISPLAY   MULTIPLEX 

INPUT 

READ  M2  IN  BINARY 
CODED   DECIMAL 

PULSE 

DISPLAY    MULTIPLEX 

INPUT 

READ   HI    IN    BINARY 
CODED    DECIMAL 

PULSE 

DISPLAY    MULTIPLEX 

INPUT 

READ    H2  IN  BINARY 
CODED    DECIMAL 

1           PRINT    HOURS 
1            AND   MINUTES 

f      RETURN    OR       "\ 
V^       REPEAT               J 

f       START       J 


♦designates    LOGIC 
BOXES    WHICH    MAY 
REQUIRE    INTERNAL 
TIME   DELAYS   DEPENDING 
UPON    PROGRAM 
EXECUTION    SPEED 


DESIGNATE    DESIRED 
PRESET    TIME 
H  =  HOURS 
M=MINUTES 


TURN  ON  SLOW        * 
SPEED   SET 


READ  MINUTES 


I 1 

I  IS  DESIRED  PRESET 

GREATER  THAN      \—  ■ 
I  CURRENT  READING 
I I 


IS  CURRENT 
READING  EQUAL 

I   TO  PRESET  H 

I I 


h  — 


~\            ?          ^ 

YES 

LET    DESIGNATED 
PRESET    H    BE 

H  =  H-  1 

NO 

.  . 

READ  HOURS 

<r  ^  / 

NO 

TURN    ON                 *| 

FAST 

SET                 1 

YES 


READ  MINUTES 


I    IS  CURRENT 
I    READING  EQUAL 
TO  PRESET  M 


I 


TURN  ON 
SLOW    SET 


(     RETURN     j 


Figure  7:  Flowchart  of  the  program  given 
in  listing  1. 


Figure   8:    Flowchart  for   the   automatic 
reset  routine. 


clock  program  in  continuous  display 
mode  and  adjust  the  clock  as  I  read  it. 
If  a  battery  back-up  capability  is  add- 
ed, the  2  TTL  automatic  set  gates 
should  be  disconnected.  When  the 
computer  is  powered  up,  random 
data  can  appear  on  bits  bi  and  b2, 
accidently  causing  it  to  enter  the  set 
mode.  This  is  not  a  problem  on  the 
input.  While  a  4-digit,  24-hour  clock 
is  quite  enough  in  my  application  (an 
example  is  shown  in  photo  2),  there 
are  those  who  need  a  second  designa- 
tion. Substituting  an  MM5311,  the  s^ 


and  Sio  digit-enable  line  can  be  added 
as  2  more  parallel  input  bits  and 
treated  exactly  as  the  present  circuit, 
or  binary  encoded  to  reduce  input 
bits,  as  shown  in  figure  5b.  This 
method  will  require  a  slight  software 
change  but  should  be  an  equally 
viable  approach.  The  present  pro- 
gram in  listing  1  executes  in  approxi- 
mately 50  ms  when  used  with  Micro 
Com  8  K  Zapple  BASIC,  but  it  works 
equally  well  with  a  machine  language 
routine. 

Whatever  your  final  configuration. 


I  am  sure  you  will  find  that  accurately 
timed  control  outputs  are  a  definite 
advantage  on  any  system.  And  there 
is  no  reason  for  the  hardware  of  any 
interface  to  constrain  the  operator's 
choice  of  software  interaction  if  it  is 
not  dictated  by  the  frequency  of 
events  themselves.  ■ 


Next  month  the  topic  of  "Ciarcia's  Cir- 
cuit Cellar"  will  be  various  joystick  inter- 
faces. 


August  1979  ©  BYTE  Publications  Inc        59 


Low  Cost  Add-On  Storage  for  Your  TRS-80' 

In  the  Size  You  Want. 


When  you're  ready  for  add-on  disk  storage,  we're  ready  for  you. 
Ready  with  six  mini-disk  storage  systems  —  102K  bytes  to  591 K  bytes  of 

additionai  on-line  storage  for  your  TRS-80 ' . 


•  Choose  either  40-track  TFD-100^"  drives 
or  77-lracl(  TFD-200™  drives. 

•  One-,  two-  and  three-drive  systems  im- 
mediately available. 

•  Systems  include  Percom  PATCH  PAK 
#1^",  on  disk,  at  no  extra  charge.  PATCH 
PAK  #1"'de-glitches  and  upgrades 
TRSDOS"^  for  40-  and  77-track  operation. 

'vTFD-lOO^"  drives  accommodate  "flippy 
disks."  Store  205K  bytes  per  mini-disk. 

•  Low  prices.  A  single-drive  TFD-100"" 
costs  just  $399.  Price  includes  PATCH 
PAK  #1™  disk. 

•  Enclosures  are  finished  in  system- 
compatible  "Tandy-silver"  enamel. 


Whether  you  need  a  single,  40- 
track  TFD-1 00"^"^  add-on  or  a  three-drive 
add-on  with  77-track  TFD-200™s,  you 
get  more  data  storage  for  less  money 
from  Percom. 

Our  TFD-1 00'^'^  drive,  for  example, 
lets  you  store  102.4K  bytes  of  data  on 
one  side  of  a  disk  —  compared  to  80K 
bytes  on  a  TRS-80*  mini-disk  drive  — 
and  102.4K  bytes  on  the  other  side,  too. 
Something  you  can't  do  with  a  TRS-80* 
drive.  That's  almost  205K  bytes  per 
mini-disk. 

And  the  TFD-200™  drives  provide 
197K  bytes  of  on-line  storage  per  drive 


—  1 97K,  394K  and  591 K  bytes  for  one-, 
two  and  three-drive  systems. 

PATCH  PAK  #1™,  our  upgrade 
program  for  your  TRSDOS*,  not  only 
extends  TRSDOS  *  to  accommodate  40- 
and  77-track  drives,  it  enhances 
TRSDOS*  in  other  ways  as  well.  PATCH 
PAK  #1"^*^  is  supplied  with  each  drive 
system  at  no  additional  charge. 

The  reason  you  get  more  for  less 
from  Percom  is  simple.  Peripherals  are 
not  a  sideline  at  Percom.  Selling  disk 
systems  and  other  peripherals  is  our 
main  business  —  the  reason  you  get 
more  engineering,  more  reliability  and 
more  back  up  support  for  less  money. 


In  the  Product  Development  Queue  . . .  a  printer  interface  for  using  your  TRS-80*  with  any 
serial  printer,  and . . .  thef/ecfr/c  Crayon^"  to  map  your  computer  memory  onto  your  color  TV 
screen  —  for  games,  animated  shows,  business  displays,  graphs,  etc.  Coming  PDQ! 


f         PERCOM    DATA   COMPANY,    INC. 
{    DEPT  B  •  211  N.  KIRBY  •  GARLAND,  TX.  75042 

60       BYTE  August  1979 


»"  TFD-100.  TFD-200,  PATCH  PAK  and  Electric  Crayon  are  trademarks  ol  PERCOM  DATA  COMPANY. 

•TRS-80  and  TRSDOS  are  Irademarks  ol  Tandy  Corporalion  and  Radio  Shack  which  have  no  relalionship  lo  PERCOM  DATA  COMPANY 


To  order  add-on  mini-disk  storage  lor  your  TRS-80* , 
or  request  additional  literature,  call  Percom's  toll-free 
number:  1-800-527-1592.  For  detailed  Technical  infor- 
mation call  (214)  272-3421. 

Orders  may  be  paid  by  check  or  money  order,  or 
charged  to  Visa  or  Master  Charge  credit  accounts.  Texas 
residents  must  add  5%  sales  tax. 

Percom  'peripherals  for  personal  computing' 


Circle  305  on  inquiry  card. 


For  your  S  WTP  6800  Computer . . . 

PERCOM's" 
ROPPY  DISK  SYSTEM 

the 


[fr 

i°Mff 

n 

-b 

^  HJIL 

I        . 

Ready  to  plug  in  and  run  the  moment  you  receive 
it.  Nothing  else  to  buy,  no  extra  memory.  No 
"booting"  with  PerCom  MINIDOS-PLUSX™,  the 
remarkable  disk  operating  system  on  EPROIM. 
Expandable  to  either  two  or  three  drives. 
Outstanding  operating,  utility  and  application 
programs. 


fully  assembled  and  tested 
shipping  paid 


PERCOM  DATA  COMPANY,  INC. 

21 1  N.  Kirby    Garland,  TX  75042 
(214)272-3421 


For  the  low  $599.95  price,  you  not  only  get  the  disk  drive,  drive  power 
supply,  SS-50  bus  controller/interface  card,  and  MINIDOS-PLUSX'", 
you  also  receive: 

•  an  attractive  metal  enclosure  •  a  fully  assembled  and  tested  inter- 
connecting cable  •  a  70-page  instruction  manual  that  includes  operat- 
ing instructions,  schematics,  service  procedures  and  a  complete  list- 
ing of  MINIDOS'"  •  technical  memo  updates  —  helpful  hints  which 
supplement  the  manual  instructions  •  a  90-day  limited  warranty. 

SOFTWARE  FOR  THE  LFD-400  SYSTEM 
Disk  operating  and  file  management  systems 
INDEX'"  The  most  advanced  disk  operating  and  file  management 
system  available  for  the  6800.  INterrupt  Driven  Executive  operating 
system  features  file-and-device-independent,  queue-buffered 
character  stream  I/O.  Linked-file  disk  architecture,  with  automatic  file 
creation  and  allocation  tor  ASCII  and  binary  files,  supports  sequential 
and  semi-random  access  disk  files.  Multi-level  file  name  directory 
includes  name,  extension,  version,  protection  and  date.  Requires  8K 

RAM  at  $A000.  Diskette  includes  numerous  utilities $99.95 

BASIC  Interpreters  and  Compilers 
SUPER  BASIC  A  10K  extended  disk  BASIC  interpreter  for  the  6800. 
Faster  than  SWTP  BASIC.  Handles  data  files.  Programs  may  be 

prepared  using  a  text  editor  described  below $49.95 

BASIC  BANDAID'"  Turn  SWTP  8K  BASIC  into  a  random  access  data 
file  disk  BASIC.  Includes  many  speed  improvements,  and  program 

disk  CHAINing $17.95 

STRUBAL+™A  STRUctured  BAsic  Language  compiler  for  the  pro- 
fessional programmer.  14-digit  floating  point,  strings,  scientific  func- 
tions, 2-dimensional  arrays.  Requires  20K  RAM  and  Linkage  Editor 
(see  below).  Use  of  the  following  text  editors  to  prepare  programs. 
Complete  with  RUN-TIME  and  FLOATING  POINT  packages  $249.95 

Text  Editors  and  Processors 
EDIT68  Hemenway  Associates'  powerful  disk-based  text  editor.  May 
be  use'd  to  create  programs  and  data  files.  Supports  MACROS  which 
perform  complex,  repetitive  editing  functions.  Permits  text  files  larger 
than  available  RAM  to  be  created  and  edited $39.95 

TOUCHUP'"  Modifies  TSC's  Text  Editor  and  Text  Processor  for  Per- 
Com disk  operation.  ROLL  function  permits  text  files  larger  than 
available  RAM  to  be  created  and  edited.  Supplied  on  diskette  com- 
plete with  source  listing  $1 7.95 

Assemblers 
PerCom  6800  SYMBOLIC  ASSEMBLER  Specify  assembly  options 
at  time  of  assembly  with  this  symbolic  assembler.  Source  listing  on 

diskette  $29.95 

MACRO-RELOCATING  ASSEMBLER  Hemenway  Associates' 
assembler  for  the  programming  professional.  Generates  relocatable 
linking  object  code.  Supports  MACROS.  Permits  conditional 

assembly $79.95 

LINKAGE  EDITOR  -  for  STRUBAL+™  and  the  MACRO-Relocating 

assembler $49.95 

CROSS  REFERENCE  Utility  program  that  produces  a  cross- 
reference  listing  of  an  input  source  listing  file   $29.95 

Business  Applications 
GENERAL  LEDGER  SYSTEM  Accommodates  up  to  250  accounts. 
Financial  information  immediately  available  —  no  sorting  required. 
Audit  trail  information  permits  tracking  from  GL  record  data  back  to 

source  document.  User  defines  account  numbers  $199.95 

FULL  FUNCTION  MAILING  LIST  700  addresses  per  diskette.  Power- 
ful search,  sort,  create  and  update  capability $99.95 

PERCOM  FINDER'"  General  purpose  information  retrieval  system 
and  data  base  manager $99.95 

TM  trademark  ol  PERCOM  Daia  Company.  Inc. 
7M  trademark  of  Hemenway  Associates  Company. 

Now!  The  LFD-800  and  LFD-1000.  Add  one,  two  or  three 
LFD-800  drives  and  store  200K  bytes  per  drive  on-line.  Add 
one  or  two  (dual-drive)  LFD-1000  units  and  store  800K  bytes 
per  unit  on-line.  Complete  with  interface/controller,  DOS, 
cable  &  manuals.  Two-drive  systems:  LFD-800  —  $1549; 
LFD-1000  — $2495. 


PERCOM  'peripherals  for  personal  computing' 


J 


Circle  306  on  inquiry  card. 


BYTE  August  1979         61 


LISP  Notes 


John  AUen 

Signetics 

811  E  Acques  Ave 

Mail  Stop  38 

Sunnyvale  CA  94086 


•  Symbolic  Expressions  (or  S-expres- 
sions)  are  the  primitive  data  items  of  LISP. 
Ttie  usual  interpretation  of  these  expres- 
sions is  a  binary  tree  where  LISP  atoms 
appear  at  the  tips  of  the  tree,  and  the 
internal  nodes,  called  COWS  nodes,  have 
2  branches.  The  left  branch  is  called  the 
CAR  branch;  the  right  branch  is  called  the 
CDR  branch.  For  example: 


CONS 
f"  NODES 


B       C 

These  CONS  nodes  are  also  called  dotted 


pairs  because  the  linear  notation  for  these 
trees,  called  dot  notation,  represents  the 
nodes  as  dots.  For  example,  the  tree  above 
would  be  written  as  (A  .  (B  .  C))  in  dot  notation. 
The  LISP  functions  car  and  cdr  select  the 
CAR  and  CDR  branches  respectively.  The 
function  cons  constructs  a  new  binary  tree 
from  2  fragments. 

•  M-Expressions  of  an  external  notation 
for  LISP,  while  a  special  kind  of  S-expres- 
sion,  called  list  notation,  are  used  for  both 
the  programming  notation  and  the  data 
notation.  All  articles  in  this  month's  BYTE 
use  list  notation  for  their  data  items.  To 
emphasize  the  distinction  between  the 
idea  of  a  list  and  its  implementation  as  a 
dotted  pair,  the  functions  first,  rest,  and 
concat  will  sometimes  be  used  instead  of 
car,  cdr,  and  cons,  even  though  the  func- 


tions are   Identical   in  traditional   imple- 
mentation. 

Within  the  LISP  language  are  several 
powerful  and  distinctive  features.  One,  called 
iambda  notation,  gives  LISP  the  ability  to 
describe  and  manipulate  functions  as  data 
objects.  We  use  a  simplified  form  of  this  con- 
cept in  the  LISP  operators  DEF  and  DEFINE. 
Another  LISP  distinction  involves  its  concept 
of  a  scope  rule:  basically  a  rule  to  apply  when 
finding  the  value  of  a  nonlocal  variable  from 
within  a  function  call.  The  default  rule  in  LISP 
(and  in  APL)  is  called  the  dynamic  scope, 
meaning  "use  the  latest  binding  of  a 
variable"  (ie:  the  binding  which  was  available 
when  the  function  was  called).  ALGOL  and 
Pascal  use  a  rule  called  static  scope  which 
says,  "use  the  value  which  was  current  at  the 
time  the  function  was  defined. "■ 


r>  ^i-i^. 


A  pencil,  a  card,  and  this  low-cost  reader. . . 

it's  the  new,  fast  way  to  enter  data  into  your 

microcomputer;" 


Interfaces  to  TRS-80,  Apple  II,  PET,  and  others. 

Good  news!  Now,  all  you  need  is  a  standard  #2  pencil,  a  card,  and  our  new 
MR-500  nnark  sense  card  reader  to  quickly  and  easily  enter  data  into  your 
favorite  microcomputer. 

As  Easy  as  One,  Two,  Three... 

Here's  all  you  have  to  do.  One  —  program  the  card  by  marking  with  the  pencil. 
Two  —  feed  the  card  into  the  reader  slot.  Three  —  the  reader  automatically  turns 
on,  the  card  is  fed  through,  and  data  is  instantly  entered  into  memory.  It's  the 
simple  low-cost  alternative  to  keyboard  data  entry. 

For  Educators,  Small  Businessmen,  and... 

The  applications  for  our  low-cost  MR-500  are  endless.  For  small  businesses,  it's 
ideal  for  inventory,  time  cards,  labor  distribution  (just  to  name  a  few).  Educators 
will  find  that  the  MR-500  streamlines  test  scoring,  attendance  records,  and  grade 
reporting.  Bet  you  can  find  a  use  already. 

The  Small  Reader  for  the  Small  Computer 

The  MR-500  is  lightweight  -  4  lbs.  Compact  -  .j^toteatatu.  Phone  or  write 

a  4'/z-inch  cube.  And  at  $750,  it's  the  only  mark  ."mSSm^nM^  '°'  details. 

sense  card  reader  that  makes  sense  for  the  I^^^Sf^l^H  ^  better  yet, 

small  computer.  I   ^'"^^H  onJer  yours  tod 


^ 


CHATSXA/ORTH   DATA 

czs  e=>  p^  P=»  c=)  i=»  >c:^.-T—  I  C3  r«*j 

20710  Lassen  Street  •  Chatsworth,  California  91311 
(213)  341-9200    .      CIrole  43  on  inquiry  oatd-./a;^.^.-,. 


MICRO 


TOLL-FREE 

1-800-528-1418 


LOWEST  PRICES    •     FAST  DELIVERY     •     DEPENDABLE  SERVICE 


DOUBLE  DENSITY  HORIZON  I  KIT 

double  the  storage  at  the  same  price! 

Today's  best  buy.  180K  bytes  per  disk. 
The  chosen  computer  for  two  MicroWorld 
systems  .  .  .  Autoscribe  —  The  Paperwork 
Manager-  and  Bookkeeper  —  The  Office 
Accountant".  Single  density  still  runs  on 
your  new  Horizon,  or  you  can  copy  and 
convert  all  North  Star  software  and  pro 
grams  to  double  density. 

•  exclusive  application  software 

•  add'l  16K  memory  (kit),  $349 

•  add'l  disk  drive  (kit),  $349 


NEW! 


Call  for  low  assembled  prices.  Double 
density  also  available  on  North  Star  disk 
sub-system,  $599  kit.  y 


MICROPOLIS 
DISK  DRIVE 
FOR  TRS-80 


HEATH  DATA 
SYSTEMS  PRINTER 


MicroWorld  Specials 

Integral  Data  Printer    $749 

Add  for  Tractors   $150 

Mime  Terminal    $  742 

Hazeltine  1410  Terminal  .  $765 
Hazeltine  1500  Terminal  .  $1097 
Teletype  Model  43 

Printer    $1019 

Dataproducts  M-200 

Printer    $2921 

Vector  Graphics  MZ     $3225 

Exidy  16K  Sorcerer    $1035 

Data  General 

microNOVA    $CALL 

Qume  Sprint  5  RO 

Printer  (55cps)  $2895 

DEC  LS  120  Printer  ....  $CALL 
Centronics  779  Printer 

(incl.  tractors)    $1095 

Micropolis  1042  Mod 

I  Drive     $CALL 

Tl  59  Calculator    $  219 

Novation  CAT  Modem     ..     $  199 

Tl  820  Terminal   $2199 

North  Star  Horizon 

Software    $CALL 

Dataproducts  B-300 

Printer    $5346 

IPSI1620  Diablo  RO    ....    $2705 

Hitachi  9"  Monitor    $184 

Cromemco  System  III  ...  $5299 
Imsai  VDP-80    $CALL 


Bringing  information  technology  to  your  doorstep 
1425  W.  12th  PI.  .  Tempe,  AZ  85281   •  602-894-1193 


Circle  233  on  inquiry  card. 


VISA     I  No  extra  charge  for  credit  card  orders 


Freight  collect,  F.O.B.  Tempe 
No  other  handling  charges 


Formerly  Byie  Shop  Mail  Order 


CALL  TOLL-FREE  1-800-528-1418 


Get  big  system  performance 
from  your  small  computer 

Bigger  isn't  always  better,  but  large-system  experience  and  a  national 
communications  network  can  help  you  get  more  out  of  your  small  computer. 


^^ 


li 


I. 


jr^\ 


m 


Our  large-scale  computer  time  sharing  system 

is  now  available  to  small  computer  users  during  off-peak 

,*"    hours  (nights,  weekends)  via  local  phone  calls. 

Cost:  $5.00  an  hour,  billed  in  one-minute  increments  of 

about  eight  cents  each! 

^  I         MicraHIET 


IWUcraHIET 


What  is  it? 

A  remote,  on-line  computing  service  available  via 
local  phone  lines  in  25  major  metropolitan  areas. 
It  is  available  from  6  p.m.  to  5  a.m.,  local  time,  daily 
as  well  as  all  day  on  weekends  and  most  holidays. 

Who  is  it? 

MicroNET  service  is  provided  by  the  Personal  Com- 
puting Division  of  CompuServe  incorporated,  one 
of  the  nation's  leading  time  sharing  computer  serv- 
ice companies.  We  are  a  multi-million  dollar  com- 
pany serving  many  Fortune  500  companies  and 
large  government  agencies  for  the  last  ten  years. 

What  services  do  I  get? 

•  Practical  personal  programs 

•  Ability  to  communicate  with  other  small  computer 
users 

•  Opportunity  to  buy  and  sell  software  through  the  net- 
work. 

•  Time-saving  business  applications 

•  Educational  aids 

•  Easy-to-use  programming  languages 

•  Advanced  programming  and  diagnostic  tools 

•  Games  (including  many  multi-player  mind-bogglers) 

What  do  I  have  to  have  to  access  iVIicroNET? 

The  minimum  requirement  is  a  terminal  with  com- 
munications Interface  and  a  telephone.  However, 


the  full  capabilities  of  the  MicroNET  service  will  be 
realized  by  using  a  microcomputer  with  modem 
interface  and  a  modem  set  for  "originate"  mode  at 
300  BAUD. 

What  does  it  cost? 

By  using  our  equipment  during  off-peak  hours,  we 
can  keep  our  rates  extremely  reasonable.  There  is 
a  one-time  charge  of  $9.00  to  sign  up.  Then  you  will 
be  billed  (via  Master  Charge  or  Visa  cards  only)  at 
the  rate  of  $5.00  per  hour.  Minimum  charge  per 
access  is  $1 .00  for  up  to  12  minutes  of  computer 
time. 

Can  I  store  data? 

Yes,  up  to  64,000  bytes  of  on-line  file  storage  for  up 
to  seven  days  between  accesses.  For  your  protec- 
tion, we  will  disconnect  automatically  if  your  per- 
sonal computer  is  left  unattended  for  15  minutes. 

I  want  to  know  a  bit  more. 

Good.  Send  in  the  coupon.  You'll  receive  more  de- 
tailed information  and  an  application.  When  you  re- 
turn the  application,  including  your  Master  Charge 
or  Visa  number  (because  we  bill  electronically  to 
help  keep  the  price  low),  we'll  send  your  user  iden- 
tification number  and  password,  user  guide,  and 
local  phone  number  so  you  can  put  the  power  of 
our  large  system  to  work  for  your  small  computer. 


r 


Mall  to: 


^ 


CompuServe 


Name 


Address. 


City/State/Zip  _ 


C 


Personal  Computing  Division 
5000  Arlington  Centre  Blvd. 
Columbus,  Ohio  43220 

Send  me  information  on  MicroNET. 


'/WUoraH/ETi 


Cities  with  local  phone  service  access:  Akron,  Atlanta,  Chicago,  Cincinnati, 
Cleveland,  Columbus,  Dallas,  Dayton,  Denver,  Detroit,  Houston,  Indianapolis,  Los 
Angeles,  Louisville,  Memphis,  West  Caldwell  (NJ),  New  York,  Philadelphia,  Pitts- 
burgh, San  Francisco,  Stamford  (CT),  St.  Louis,  Toledo,  Tucson,  Washington  D.C. 


Circle  46  on  inquiry  card. 


BYTE  August  1979         65 


A  Model  of  the  Brain 
for  Robot  Control 

Part  3:  A  Comparison  of  the  Brain 
and  our  Model 


In  parts  1  and  2  we  have  shown 
how  a  neurological  model  called  the 
Cerebellar  Model  Arithmetic  Com- 
puter (CMAC)  can  compute  func- 
tions, recognize  patterns,  and  decom- 
pose goals.  We  have  also  shown  how 
a  crosscoupled  hierarchy  of  CMACs 
(see  figure  1)  can  memorize  trajec- 
tories, generate  goal  directed  pur- 
posive behavior,  and  store  an  internal 
model  of  the  external  world  in  the 
form  of  predicted  sensory  data.  In 
this  third  article  we  will  attempt  to 
show  how  this  structure  and  its  capa- 
bilities can  give  rise  to  perceptual  and 
cognitive  phenomena. 

The  fact  that  the  mathematical 
details  of  the  CMAC  model  were 
derived  from  the  cerebellum,  a  por- 
tion of  the  brain  particularly  regular 
in  structure  and  hence  uniquely 
suitable  for  detailed  neuro- 
physiological  analysis,  does  not  mean 
that  the  results  are  inapplicable  to 
other  regions  of  the  brain  as  well.  The 
basic  structure  of  a  large  output  cell 
(sometimes  called  a  principal,  relay, 
or  projection  neuron)  served  by  a 
cluster  of  local  interneurons  is  quite 
typical   throughout   the  brain.    Such 


About  the  Author: 

Dr  James  S  Albus  worked  for  NASA  from 
1957  to  1972  designing  optical  and  electronic 
subsystems  for  over  15  spacecraft,  and  for  one 
year  managed  the  NASA  Artificial  Intelligence 
Program.  Since  1973  he  has  been  with  the  Na- 
tional Bureau  of  Standards  where  he  has  re- 
ceived several  awards  for  his  work  in  advanced 
computer  control  systems  for  industrial  robots. 
He  has  written  a  survey  article  on  robot 
systems  for  the  February  1967  issue  of  Scien- 
tific American  and  his  Cerebellar  Model 
Arithmetic  Computer  won  the  Industrial 
Research  Magazine  lR-100  award  as  one  of  the 
100  most  significant  new  products  of  1975. 


James  Albus 

Project  Manager 

United  States  Dept  of  Commerce 

National  Bureau  of  Standards 

Washington  DC  20234 


clusters  commonly  receive  input  from 
a  large  number  of  nonspecific  neural 
fibers  similar  to  the  mossy  fibers  in 
the  cerebellum.  In  many  instances 
they  also  receive  specific  inputs  which 
are  more  or  less  analogous  to  climb- 
ing fibers.  As  we  might  expect,  there 
are  many  differences  in  size  and  shape 
of  the  corresponding  cell  types  from 
one  region  of  the  brain  to  another. 
These  reflect  differences  in  types  of 
computations  being  performed  and 
information  being  processed,  as  well 
as  differences  in  the  evolutionary 
history  of  various  regions  in  the 
brain.  Nevertheless,  there  are  clear 
regularities  in  organization  and 
similarities  in  function  from  one 
region  to  another.  This  suggests  that, 
at  least  to  a  first  approximation,  the 
basic  processes  are  similar. 

The  implication  is  that  the  general 
model  of  information  processing 
defined  by  CMAC  (the  concept  of  a 
set  of  principal  neurons  together  with 
their  associated  interneurons  trans- 
forming an  input  vector  S  into  an  out- 
put vector  P  in  accordance  with  a 
mathematically  definable  relationship 
H)  may  be  useful  in  analyzing  the 
properties  of  many  different  cortical 
regions  and  subcortical  nuclei.  This  is 
particularly  true  since  the  accuracy, 
resolution,  rate  of  learning,  and 
degree  of  generalization  of  the 
CMAC  H  function  can  be  chosen  to 
mimic  the  neuronal  characteristics  of 
different  areas  in  the  brain. 


Hierarchical  Control 

The  idea  that  the  central  nervous 
system,  which  generates  behavior  in 
biological  organisms,  is  hierarchically 
structured  is  an  old  one,  dating  back 
considerably  more  than  a  century. 
The  analogy  is  often  made  to  a 
military  command  structure,  wherein 
many  hundreds  of  operational  units 
and  thousands,  even  millions  of  in- 
dividual soldiers  are  coordinated  in 
the  execution  of  complex  tasks  or 
goals.  In  this  analogy  each  computing 
center  in  the  behavior-generating 
hierarchy  is  like  a  military  command 
post,  receiving  commands  from 
immediate  superiors  and  issuing  se- 
quences of  subcommands  which 
carry  out  those  commands  to  subor- 
dinates. 

Feedback  is  provided  to  each  level 
by  a  sensory-processing  hierarchy 
which  ascends  parallel  to  the 
behavior-generating  hierarchy,  and 
which  operates  on  a  data  stream 
derived  from  sensory  units  which 
monitor  the  external  environment  as 
well  as  from  lower  level  command 
centers  which  report  on  the  progress 
being  made  in  carrying  out  their  sub- 
commands. Feedback  is  processed  at 
many  levels  in  this  ascending  hierar- 
chy by  intelligence  analysis  centers 
that  extract  data  relevant  to  the  com- 
mand and  control  functions  being 
performed  by  the  behavior-gener- 
ating module  at  that  level. 

Each  of  these  intelligence  analysis 
centers  makes  predictions  based  on 
the  results  expected  (ie:  casualties, 
rewards,  sensory  data  patterns)  as  a 
consequence  of  actions  currently  be- 
ing taken.  The  intelligence  centers 
then  interpret  the  sensory  data  they 
receive  in  the  context  of  these  predic- 
tions.  For  example,    in  military   in- 


66        August  1979  ©  BYTE  PublicaMons  Inc 


The  ideas  presented  in 
this  article  represent  the 
views  of  the  author  and  not 
those  of  the  Department  of 
Commerce  or  the  National 
Bureau  of  Standards. 


telligence  analysis  a  loss  of  60  men  in 
an  operation  where  losses  had  been 
predicted  at  600  implies  an  unex- 
pectedly easy  success,  and  perhaps  in- 
dicates a  weakness  in  the  enemy  posi- 
tion which  should  be  further  ex- 
ploited. In  the  brain,  the  observation 
of  60  nerve  impulses  on  an  axon 
where  600  has  been  anticipated  may 
imply  an  unexpectedly  weak  branch 
in  a  tree,  upon  which  the  placing  of 
any  weight  will  result  in  a  fatal  fall 
from  the  treetop. 

The  response  of  each  command 
post  (or  data  analysis  center)  in  the 
hierarchy  to  its  input  depends  on  how 
it  has  been  trained.  Basic  training 
teaches  each  soldier  how  to  do  things 
the  "army  way"  (ie:  what  each  com- 
mand means  and  how  it  should  be 
carried  out).  Each  operational  unit  in 
the  military  has  a  field  manual  which 
defines  the  proper,  or  ideal  response 
of  that  unit  to  every  foreseeable  bat- 
tlefield situation.  Each  field  manual  is 
essentially  a  set  of  IF/THEN  produc- 
tion rules  or  case  statements,  cor- 
responding to  a  set  of  CMAC  func- 
tions, P  =  H  (S)  or  Q  =  G  (D).  At 
the  lowest  level  in  the  military 
analogy  these  rules  define  the  proper 
procedures  for  maintaining  and 
operating  weapons,  as  well  as  the 
proper  behavioral  patterns  for  sur- 
viving and  carrying  out  assignments 
under  battlefield  conditions.  At 
higher  levels  they  define  the  proper 
tactics  for  executing  various  kinds  of 
maneuvers.  At  the  highest  level,  they 
define  the  proper  strategy  for  deploy- 
ment of  resources  and  achievement  of 
objectives. 

In  the  case  where  each  unit  carries 
out  its  assignment  "according  to  the 
book,"  the  overall  operation  runs 
smoothly  and  the  goal  is  achieved  on 
schedule  as  expected.  To  the  extent 
that  various  units  do  not  follow  their 
ideal  trajectories,  either  because  of 
improper  training  or  because  of  un- 
foreseen difficulties  in  the  environ- 
ment, the  operation  will  deviate  from 
the  expected  or  planned  schedule. 
Alternate  tactics  may  be  required.  If  a 
change  in  tactics  still  does  not  pro- 
duce success,  new  strategies  may  be 
required.  Of  course,  there  is  always 


1 

1 

,C4 

E4 

H4 

04 

JX4 

G4 

R„ 

M4 

P4 

Ca 

» 

E4 

F3 

H3 

03 

iX3 

G3 

R3 

M3 

P3 

.02 

T 

Ej  ' 

F2 

H2 

02 

jX2 

Gz 

R2 

M2 

Pz 

LCi 

» 

E2 

F, 

Hi 

0| 

^x, 

G| 

Ri 

Ml 

P| 

ACTION 

E,    J 

i 

SEN 

5ATI0N 

ENVIRONMENT 


the  possibility  that  failure  will  occur, 
despite  every  effort.  The  goal  will  not 
be  achieved  or,  worse  yet,  the 
organism  may  suffer  a  catastrophic 
setback. 

There  is  considerable  anatomical, 
neurophysiological,  and  behavioral 
evidence  that  the  analogy  between 
the  brain  and  a  military  hierarchy  is 
quite  accurate.  However,  in  saying 
this,  it  is  important  to  keep  in  mind 
that  the  highly  schematic  hierarchy 
shown  in  figure  1  is  a  grossly  over- 
simplified diagram  of  the  vast  inter- 
connected hierarchical  network 
which  is  the  brain.  Every  motor 
neuron  in  the  nervous  system  can  be 
thought  of  as  being  controlled  by  its 
own  hierarchy  which  interleaves  and 
overlaps  extensively  with  the  hierar- 
chies of  nearby  synergistic  motor 
neurons.  Each  sensory-motor  system 
has  its  own  set  of  overlapping  hierar- 
chies which  become  increasingly  in- 
terrelated   and    interconnected    with 


Figure  1:  A  crosscoupled,  processing- 
generating  hierarchy.  The  H  modules 
decompose  input  goals  C  into  output 
subgoals  P  using  feedback  F.  The  M 
modules  recall  expected  sensory  data  R 
which  is  compared  with  observed  sensory 
experiences  E.  The  G  modules  recognize 
sensory  patterns  Q  and  compute  feedback 
errors  F. 


each  other  at  the  higher  levels.  Thus, 
the  entire  brain  may  have  the  topo- 
logical shape  of  an  inverted 
paraboloid  as  shown  in  figure  2. 

Triune  Brain  Hypothesis 

There  is  in  fact  some  evidence  to 
suggest  that  the  human  brain  is  topo- 
logically  similar  to  three  (or  more) 
concentric  paraboloid  hierarchies  as 
illustrated  in  figure  3.  Paul  MacLean 
and  others  have  hypothesized  a  triune 
brain  wherein  the  inner  core  is  a 
primitive  structure  (ie:  the  reptilian 
brain)  which  provides  vital  functions 


August  1979  ©  BYTE  Publications  Inc        67 


SMELL 

TOUCH 

TASTE  jAvys 
LIPS 
TONGUE 


LEGS 
FEET 

BALANCE       ^°^5° 

FORCE 

PROPRIOCEPTION 


♦ 

SPEECH 

LUNGS 

LARYNX 


TOUCH 
FORCE 
PROPRIOCEPTION 


ARMS 

HANDS 

FINGERS 


such  as  breathing  and  basic  reflexive 
or  instinctive  responses  such  as 
eating,  fighting,  fleeing,  and  repro- 
ductive activities.  Superimposed  on 
this  inner  core  is  a  second  layer  (ie: 
the  mammalian  brain)  which  is  cap- 
able of  more  sophisticated  sensory 
analysis  and  control.  This  second 
layer  tends  to  inhibit  the  simple  and 
direct  responses  of  the  first  so  as  to 
apply  them  more  selectively  and  to 
delay  responses  until  opportune 
moments.  This  second  brain  thus  pro- 
vides the  patient  waiting  behavior 
necessary  for  effective  hunting  of 
prey.  On  top  of  this  is  yet  a  third 
layer  (ie:  the  primate  brain)  which 
possesses  the  capacity  to  manipulate 
the  other  two  layers  in  extremely  sub- 
tle ways;  to  imagine  and  plan,  to 
scheme  and  connive,  to  generate  and 
recognize  signs  and  symbols,  to  speak 
and  understand  what  is  spoken. 

The  outer  layers  employ  much 
more  sophisticated  sensory  analysis 
and  control  algorithms  that  detect 
greater  subtleties  and  make  more 
complex  decisions  than  the  inner 
more  primitive  layers  are  capable  of 
performing.  Under  normal  conditions 
the  outer  layers  modify,  modulate, 
and  sometimes  even  reverse  the  sense 
of  the  more  primitive  responses  of  the 
inner  layers.  However,  during 
periods  of  stress,  the  highly 
sophisticated  outer  layers  may  en- 
counter computational  overload  and 


Figure  2.  In  the  brain  different  processing- 
generating  hierarchies  represent  different 
sensory-motor  systems.  These  become  in- 
creasingly interrelated  at  the  higher  levels 
and  eventually  merge  into  a  unified  com- 
mand and  control  structure.  This  enables 
a  complex  organism  to  coordinate  its  ac- 
tions in  pursuit  of  high  level  goals. 

become  confused  or  panicked.  When 
this  happens,  the  inner  core  hierarchy 
may  be  released  from  inhibition  and 
execute  one  of  the  primitive  survival 
procedures  stored  in  it  (ie:  fight,  flee, 
or  freeze).  A  similar  takeover  by  the 
inner  hierarchy  may  occur  if  the  more 
delicate  circuitry  of  the  outer  is 
disrupted  by  physical  injury  or  other 
trauma.  Thus  the  brain  uses  its  redun- 
dancy to  increase  reliability  in  a 
hostile  environment. 

Of  course,  all  three  layers  of  the 
behavior-generating  hierarchy  come 
together  at  the  bottom  level  in  the 
motor  neuron  —  the  final  common 
pathway. 

Motor-Generating  Hierarchies 
in  the  Brain 

In  the  military  hierarchy  analogy, 
the  motor  neurons  are  the  foot 
soldiers.  They  produce  the  action. 
Their  firing  rates  define  the  output 
trajectory  of  the  behavior-generating 
hierarchy.  A  CM  AC  representing  a 
spinal  motor  neuron  and  its  asso- 
ciated interneurons  receive  feedback 


F  from  stretch  receptors  via  the  dorsal 
roots,  as  well  as  from  other  motor 
neurons  reporting  ongoing  activity  in 
related  muscles.  The  command  vector 
C  to  this  lowest  level  comes  from  the 
vestibular  system,  which  provides  in- 
ertial  reference  signals  necessary  for 
posture  and  balance,  as  well  as  from 
the  reticular  formation  and  basal 
ganglia  (and  in  primates,  also  directly 
from  the  motor  cortex). 

There  is  nothing  analogous  to  clim- 
bing fibers  for  the  motor  neurons,  but 
this  is  not  surprising  since  there  is 
evidence  that  little  or  no  learning 
takes  place  at  this  first  level  in  the 
behavior-generating  hierarchy. 

Evidence  for  second,  third,  and 
fourth  levels  in  the  behavior- 
generating  hierarchy  comes  from  ex- 
periments with  animals  and  observa- 
tions of  injured  humans  where  the 
spinal  cord  is  severed  at  different 
levels.  If,  as  is  shown  in  figure  4,  the 
cord  is  severed  from  the  brain  along 
the  line  A-A,  most  of  the  basic  motor 
patterns  such  as  the  flexor  reflex  and 
the  reflexes  that  control  the  basic 
rhythm  and  patterns  of  locomotion 
remain  intact.  However,  coordinated 
activation  of  these  patterns  to  stand 
up  and  support  the  body  against 
gravity  requires  that  the  regions 
below  B-B  be  intact. 

The  stringing  together  of  different 
postures  to  permit  walking  and  turn- 
ing movements  requires  the  regions 


68        August  1979  ©  BYTE  Publications  Inc 


Color.  \/P-590 add-on  Color  Board  allows  program 
control  of  8  brilliant  colors  for  graphics,  color  games. 
Plus  4  selectable  background  colors.  Includes 
sockets  for  2  auxiliary  keypads  (\/P-580).  $69^ 


Sound.  VP-595  Simple  Sound  Board  provides  256 
tone  frequencies.  Greatfor supplementing  graphics 
with  sound  effects  or  music.  Set  tone  and  duration 
with  easy  instructions.  $24.* 


Music.  VP-550  Super  Sound  Boardturnsyour  VIPintoa  music 
synthesizer.  2  sound  channels.  Program  control  of  frequency, 
time  and  amplitude  envelope  (voice)  independently  in  each 
channel.  Program  directly  from  sheet  music!  Sync  provision 
for  controlling  multiple  VIPs,  multitrack  recording  or  other 
synthesizers.  $49.* 

Memory.  VP-570  RAK/1  Expansion  Board  adds  4K 
bytes  of  memory.  Jumper  locates  RAM  in  any  4K 
block  of  up  to  32K  of  memory.  On-board  memory 
protect  switch.  $95r 


EPROM  Programmer.  VP-565  EPROM  Programmer  Board 
comes  complete  with  software  to  program,  copy  and 
verify  5-volt  2716  EPROMs— comparable  to  units 
costing  much  more  than  the  VP-565  and  VIP  put 
together!  Programming  voltages  generated  on 
board.  ZIP  PROM  socket  included.  $99r 


EPROM  Interface.  VP-560 EPROM  Interface 
Board  locates  two  5-volt  2716  EPROMs  (4K 
bytes  total)  anywhere  in  32K  of  memory. 
VIP  RAM  can  be  re-allocated.  $34* 


ASCII  Keyboard.**  Fully  encoded,  128-character  ASCII 
encoded  alpha-numeric  keyboard.  58  light  touch  keys 
including  2  user  defined  keys!  Selectable  upper  and  lower 
case.  Handsomely  styled.  Under  $50r 


Tiny  BASICr*  VP-700 
Expanded  Tiny  BASIC  Board 
puts  this  high-level  language 
onyour  VIP  BASIC  stored      ^i 
in  4K  of  ROM.  Ready  for  im-     ' 
mediate  use— no  loading 
necessary.  This  expanded 
BASIC  includes  the  standard 
Tiny  BASIC  commands  plus 
12  additional— including 
color  and  sound  control! 
Requires  external  ASCII 
encoded  alpha-numeric 
keyboard.  $39.* 


uxiliary  Keypads.  Program 
your  VIP  for  2-player  inter- 
action games!  16-key  keypad 
VP-580  with  cable  ($15*) 
connects  to  sockets  pro- 
vided on  VP-590  Color  Board 
or  VP 585  Keyboard  Interface 
Card  ($10*). 


COSMAC  VIP  lets  you  add , 
computer  power  a  board  at  a  time. 


With  these  new  easy-to- 
buy  options,  the  versatile 
RCA  COSMAC  VIP 
{CDP18S711)  means  even 
more  excitement.  More 
challenges  in  graphics, 
games  and  control  func- 
tions. For  everyone,  from 
youngster  to  serious  hobby- 
ist. And  the  basic  VIP  com- 
puter system  starts  at  just  $249*  assembled 
and  ready  to  operate. 

Simple  but  powerful— not  just  a  toy. 

Built  around  an  RCA  COSMAC  micro- 
processor, the  VIP  includes  2K  of  RAM.  ROM 
monitor.  Audio  tone  with  a  built-in  speaker. 
Plus  8-bit  input  and  8-bit  output  port  to  inter- 
face relays,  sensors  or  other  peripherals.  It's 


easy  to  program  and  operate. 
Powerful  CHIP-8  interpre- 
tive language  gets  you  into 
programming  the  first 
evening.  Complete  docu- 
mentation provided. 
Take  the  first  step  now. 
Check  your  local  com- 
puter store  or  electronics 
parts  house.  Or  contact 
RCA  VIP  Marketing,  New  Holland  Avenue, 
Lancaster,  PA  17604.  Phone  (717)  291-5848. 

"Suggested  retail  price.  CDP18S71 1  does  not  Include  video  monitor  or  cassette  recorder. 
••Available  1st  Quarter.  1979, 

See  the  RCA  VIP  at  the  3rd  Annual  National  Small  Computer  Show 
at  the  New  York  Coliseum,  August  23-26,  booth  421 1 . 


The  fun  way 
into  computers. 


RCil 


Circle  322  on  inquiry  card. 


BYTE  August  1979         69 


JAWS  VISION 

LIPS  EYES 

TONGUE  HEAD 


SPEECH 
LUNGS 
LARYNX 


LEGS.  FEET, 
BALANCE,  FORCE, 
PROPRIOCEPTION 

ARMS.  HANDS,  FINGERS 
TOUCH,   FORCE, 
PROPRIOCEPTION 


Figure  3:  The  human  brain  is  hypothesized  to  be  a  composite  structure  consisting  of  at 
least  three  layers:  (1)  a  reptilian  brain  which  provides  basic  reflexes  and  instinctive 
responses;  (2)  a  mammalian  brain  which  is  mare  sophisticated  and  capable  of  delayed 
responses;  and  (3)  a  primate  brain  which  can  imagine,  plan  and  manipulate  abstract 
symbols.  The  outer  layers  inhibit  and  modulate  the  more  primative  tendencies  of  the 
inner  layers. 


HYPOTHALAMUS 


PRESTITIAL 
NUCLEUS 


RETICULAR 
FORMATION 


SUBTHALAMIC    NUCLEUS 


NUCLEUS 
PRECOMMISSURALIS 


INTERSTITIAL    NUCLEUS 
CEREBELLUM 


RED  NUCLEUS 
VESTIBULAR    NUCLEUS 


SPINAL   CORD 


Figure  4.  The  hierarchy  of  motor  control  that  exists  in  the  extrapyramidal  motor 
system.  Basic  reflexes  remain  even  if  the  brain  stem  is  cut  at  A-A.  Coordination  of  these 
reflexes  for  standing  is  possible  if  the  cut  is  at  B-B.  The  sequential  coordination  required 
for  walking  requires  the  area  below  C-C  to  be  operable.  Simple  tasks  can  be  executed  if 
the  region  beloio  D-D  is  intact.  Lengthy  tasks  and  complex  goals  require  the  cerebral 
cortex. 


below  C-C  to  be  undamaged.  In  par- 
ticular it  is  known  that  the  rotational 
movements  of  the  head  and  eyes  are 
generated  in  the  interstitial  nucleus; 
raising  and  lowering  of  the  head  in 
the  prestitial  nucleus;  and  flexing 
movements  of  the  head  and  body  in 
the  nucleus  precommissuralis. 
Stimulation  of  the  subthalamic  nuclei 
can  cause  rhythmic  motions  including 
walking.  A  cat  with  its  brain  section- 
ed along  C-C  can  walk  almost  nor- 
mally. However,  it  cannot  vary  its 
walking  patterns  to  avoid  obstacles. 

Animals  whose  brains  are  cut  along 
the  line  D-D  can  walk,  avoid  ob- 
stacles, eat,  fight,  and  carry  on  nor- 
mal sexual  activities.  However,  they 
lack  purposiveness.  They  cannot  exe- 
cute lengthy  tasks  or  goals.  Humans 
with  brain  disease  in  the  basal  ganglia 
may  perform  an  apparently  normal 
pattern  of  movements  for  a  few 
seconds  and  then  abruptly  switch  to  a 
different  pattern,  and  then  another. 
One  form  of  this  disease  is  called  St 
Vitus'  dance. 

Higher  levels  of  the  behavior- 
generating  hierarchy  become  increas- 
ingly difficult  to  identify  and  localize, 
but  there  is  much  to  indicate  that 
many  additional  levels  exist  in  the 
cerebral  cortex.  For  example,  the 
motor  cortex  appears  to  be  respons- 
ible for  initiating  commands  for  com- 
plex tasks.  The  ability  to  organize 
lengthy  sequences  of  tasks,  such  as 
the  ability  to  arrange  words  into  a 
coherent  thought  or  to  recall  the 
memory  of  a  lengthy  past  experience, 
seems  to  reside  in  the  posterior  tem- 
poral lobe.  Interactions  between  emo- 
tions and  intentional  behavior  appear 
to  take  place  in  the  mediobasal  cor- 
tex, and  long  term  plans  and  goals  are 
believed  to  derive  from  activity  in  the 
frontal  cortex.  Hierarchies  of  dif- 
ferent systems  (ie:  vision,  hearing, 
manipulation,  locomotion,  etc) 
merge  together  in  the  association 
areas. 

Sensory-Processing  Hierarchies 
in  the  Brain 

It  is  a  well  established  fact  that 
hierarchies  of  sensory-processing 
modules  exist  in  the  brain.  In  a 
famous  series  of  experiments,  Hubel 
and  Wiesel  demonstrated  four  clearly 
distinguishable  hierarchical  levels  in 
the  visual  system.  Similar  sensory- 
processing  hierarchies  have  been  ex- 
tensively   studied    in    the    auditory 


70        Auguse  1979  ©  BYTE  Publications  Inc 


The  TARBELL  Connection 

in  an  effort  to  offer  products  that  meet  the  continually  changing  demands  of  the  microcomputer 
industry,  TARBELL  ELECTRONICS  is  pleased  to  offer  immediate  delivery  of  these  quality  components 
and  operating  software.  All  TARBELL  products  are  available  from  computer  store  dealers  everywhere. 

Tarbell  Floppy  Disk  Interface  Tarbell  Disk  BASIC 


•  Plugs  directly  into 
your  IMSAI  or 
ALTAIR  and  handles 
up  to  4  standard  sin- 
gle drives  in  daisy- 
chain. 

•  Operates  at  standard 
250K  per   second 
on    normal   disk   for- 
mat capacity  of  256K 
bytes. 

•  Works  with  modified 
CP/M  Operating  Sys- 
tem and  BASIC-E 
Compiler. 

•  Hardware  includes  4  extra  IC  slots, 
built-in  phantom  bootstrap  and  on- 
board crystal  clock.  Uses  WD  1771 
LSI  chip. 

•  Full  6-month  warranty  and  extensive 
documentation. 

•  Kit  $190 Assembled  $265. 


Specify  drive  for  assembled  units. 
Complete  disk  subsystems  with  opera- 
ting software  available.  Please  inquire 
for  details. 


Runs  on  8080,  8085  or  Z80 
Searches  a  file  quickly  for  a  string. 
Up  to  64  files  open  at  once. 
Random  Access. 
Assignment  of  1/0. 
Alphanumeric  line  labels  allowed. 
Read  and  Write  string  or  numeric 
data. 

•  Unlimited  length  of  variable  names 
and  strings. 

•  Procedures  with  independent  varia- 
bles. 

•  Number  system  10  digits  BCD  inte- 
ger or  floating  point. 

•  Chain  to  another  program. 

•  Cause  programs  to  be  appended  on- 
to programs  already  in  memory. 

•  Cause  interpreter  to  enter  edit  mode 
using  15  single  character  edit  com- 
mands. 

Occupies  24K  of  RAM.  Tarbell  BASIC 

on  CP/M  Disk $48. 

Source  on  paper  or  CP/M  Disk  .  .  .$25. 
CP/M  and  BASIC-E  on  disk  with 
manuals $100. 


Tarbell  32K  RAM  Memory 

32K  Static  Memory 

S-100  Bus  Connector 

9  regulators  provide  excellent  heat  distribution. 

Extended  addressing  (bank  switching.) 

Phantom  line. 

Low  power  requirement. 

20-Page  operatmg  manual. 

Full  1-year  warranty. 

Assembled  and  tested  full  price  only  $625 

16K  version  also  available,  assembled  and  tested  only  $390. 


Tarbell  Cassette  Interface 


•  Plugs  directly  into  your  IMSAI  or  ALTAIR. 

•  Fastest  transfer  rate:  187  (standard)  to  540  bytes/second. 

•  Extremely  reliable— Phase  encoded  (self-clocking). 

•  4  extra  status  lines,  and  4  extra  control  lines. 

•  3  7-page  manual  included. 

•  Device  code  selectable  by  DIP-switch. 

•  Capable  of  generating  Kansas  City  tapes. 

•  No  modification  required  on  audio  cassette  recorder. 

•  Complete  kit  $120 Assembled  $1 

•  Manual  may  be  purchased  separately 

•  Full  6-month  warranty  on  kit  and  assembled  units. 

Circle  360  on  inquiry  card. 


Tarbell  Cassette  BASIC 

Includes  most  features  of  ALTAIR  Extended  BASIC,  plus 
these  added  features: 

Assignment  of  I/O. 

Alphanumeric  line  labels. 

Unlimited  length  of  variable  names  and  strings. 

Number  system  10  digits  BCD  integer  or  floating  point. 

Procedures  with  independent  variables. 

Read  and  Write  string  data. 

Multi-file  capability. 
Full  price  with  complete  documentation $48. 

Prepaid,  COD,  or  cash  only,  California  residents  please  add 
6%  sales  tax. 

ALTAIR  is  a  trademark/tradename  ofPertec  Computer  Corporation 
CP/M  is  a  trademark/tradename  of  Digital  Research 


75. 
$8. 


950  DOVLEN  PLACE  •  SUITE  B 
CARSON,  CALIFORNIA  90746 

(213)538-4251  •(213)  538-2254 

BYTE  August  1979         71 


Q|  =  G,  (D|) 


D,  =  E,  +  R, 


system  and  also  the  proprioceptive 
and  kinesthetic  pathways.  Cross- 
coupHng  from  these  ascending  hierar- 
chies of  sensory-processing  modules 
to  the  motor-generating  hierarchies 
provides  the  many  different  levels  of 
sensory  feedback  information  re- 
quired at  the  various  stages  of  the 
task  or  goal  decomposition  process. 
At  each  level,  output  vectors  from  the 
previous  level  of  the  sensory- 
processing  hierarchy  provide  inputs 
to  the  next  higher  level,  as  well  as 
feedback  to  the  same  level  of  the 
behavior-generating  hierarchy. 

In  the  case  of  vision,  the  two- 
dimensional  nature  of  input  from  the 
surface  of  the  retina  causes  the  com- 
putational modules  in  the  visual  pro- 
cessing system  to  be  organized  in 
sheets.  This  implies  that  a  CMAC 
model  of  a  typical  level  in  the  visual 
processing  hierarchy  would  resemble 


Figure  5:  A  two-dimensional  array  of 
sensory-processing  Cerebellar  Model 
Arithmetic  Computers  such  as  might  exist 
in  the  visual  system.  The  observed  sen- 
sory image  E^  plus  the  prediction  vector 
Rj  enters  and  is  recognized  by  the 
operator  Gj  as  a  pattern.  The  vector  R^ 
may  select  one  of  many  filter  functions  or 
provide  an  expected  image  or  map  to  be 
compared  against  the  observed  image. 


the  structure  shown  in  figure  5.  In  this 
structure  the  sensory  input  Di  might 
consist  of  a  pattern  of  sensory 
variables  Ej  defining  light  intensity 
(perhaps  in  a  particular  color  band) 
together  with  predicted  variables  R^ 
which  select  a  particular  filter  func- 
tion. The  output  Qi  =  G^  (Dx)  then 
might  define  a  pattern  of  edges  or  line 


segments.  This  output  forms  part  of 
the  input  E2  to  the  second  level.  Out- 
put from  the  second  level,  Q2  =  G2 
(D2),  might  define  patterns  of  con- 
nected regions  or  segments. 

Recent  work  by  David  Marr  at  the 
Massachusetts  Insititute  of  Tech- 
nology and  Jay  Tennenbaum  at  SRI 
International  suggests  that  the  output 
vectors  Qj  at  various  levels  may 
define  more  than  one  type  of  feature. 
For  example,  a  single  level  in  the 
visual  processing  system  might  con- 
tain a  depth  image  (derived  from 
stereo  disparity,  light  gradients,  local 
edge-interaction  cues,  etc),  a  velocity 
image  (derived  from  motion  detec- 
tors), and  an  outline  drawing  image 
(derived  from  edge  detectors,  line, 
and  corner  finders)  in  addition  to 
brightness,  color,  and  texture  images 
of  the  visual  field.  These  and  many 
other  kinds  of  information  appear  to 


72        August  1979  ©  BYTE  Publications  Inc 


DOUBLE  DENSITY!! 


from 


For  the  last  year  the  Micro  industry  has  been  promising  double 
density,  and  indeed  some  have  been  delivered.  But  if  you're  still 
waiting  for  your  order  or  grown  tired  of  flaky  performance,  call 
Delta.  After  a  year  of  engineering  and  months  of  production 
planning  —  WE  CAN  DELIVER!. 

And  what  we  deliver  is  SOLID,  RELIABLE  DOUBLE  DENSITY. 

Ask  the  owners  of  any  of  our  other  fine  products: 
—  S-100  Mainframe  —  Z-SO  CPU  —  32  and  16K  RAM  —  Video  Interface 


WE  HAVE  iMcVizR  H 

AL* 

A  FIELD  RETURN! 

m 

Designed  for  CPM 

• 

2  Data  separators;  one 

® 

On  Board  Boot 

digital,  one  analog 

m 

2MHz-4MHz  Operation 

• 

Runs  without  occupying  any 

# 

Switch  Selectable  Write 

system  RAM 

Precomp. 

• 

Complete  Documentation 

• 

"Personality  Board"  to 

• 

Transparent  Density  Select 

Modify  Drive  Configurations 

• 

Drive  Diagnostic  Software 

(No  jumper  wires) 

included 

West: 

DEL  TA  PRODUCTS 

1653  E.  28th  Street 
Long  Beach,  Calif.  90806 
Tel;  (213)  595-7505 

Circle  98  on  inquiry  card. 


East. 

DELTA  PRODUCTS 

1254  South  Cedar  Road 
New  Lenox,  Illinois  60451 
Tel:  (815)485-9072 

BYTE  August  1979         73 


Circle  99  on  inquiry  card. 


Whenyou 

want  to 

makea 

good 

impression, 


Pick 
ADaisy. 

Diablo  invented  the  Daisy  Wheel. 
Which  is  why  today,  more  people 
pick  one  of  over  100  different  Diablo 
Daisy  Wheels  when  they  want  print 
quality  at  its  finest. 

So,  the  next  time  you  want  to 
make  a  good  impression,  pick  our  daisy 
and  you're  sure  to  look  your  best. 

Diablo  Systems 

XEROX 


Diablrf  and  Xirrox  arc  registered  trademarks  of 
XEROX  CORPORATION. 

74        August  1979  ©  BYTE  Publications  Inc 


exist  in  registration  at  several  dif- 
ferent levels  of  the  visual  information 
processing  hierarchy  so  as  to  make 
possible  the  extremely  sophisticated 
visual  recognition  tasks  which  our 
brains  routinely  perform.  These  dif- 
ferent types  of  images  interact, 
sometimes  reinforcing  each  other  so 
as  to  confirm  a  recognition,  and 
sometimes  contradicting  each  other 
so  as  to  reject  one  possible  interpre- 
tation of  the  visual  input  in  favor  of 
another. 

Crosscoupling 

Cross  links  from  the  descending 
hierarchies  of  motor-generating 
modules  provide  the  many  different 
levels  of  contextual  and  predictive  in- 
formation required  at  various  stages 
of  the  pattern  recognition  or  sensory 
analysis  process.  In  the  visual  hierar- 
chy, as  well  as  in  all  other  sensory- 
processing  hierarchies,  context  vari- 
ables Rj  may  define  expected  values  of 
the  Ej  vectors.  This  implies  that  the 
addresses  Pj  and  Xj  have  stored  data 
from  previous  experiences  when  what 
is  currently  recalled  as  Rj  was  ex- 
perienced as  Ej.  In  this  case  the  recall- 
ed context  Rj  is  essentially  a  stored 
image,  or  map,  which  is  accessed  by 
an  associative  address  created  by  the 
behavior-generating  hierarchy  being 
in  a  state  more  or  less  similar  to  that 
which  existed  when  the  remembered 
experience  (ie:  the  map)  was  stored. 

This  implies  that  the  sensory  data 
processing  hierarchy  is  a  multilevel 
map  (or  template)  matching  process, 
and  that  in  order  to  generate  these 
maps  the  behavior-generating  side  of 
the  crosscoupled  hierarchy  must  be 
put  into  a  state  (or  pulled  along  a  tra- 
jectory) similar  to  that  which  existed 
when  the  template  was  recorded. 

When  this  occurs,  the  interaction 
around  the  loop  formed  by  the  G;,  Hj, 
and  Mj  modules  at  each  level  is 
similar  to  a  phase-lock  loop,  or  a 
relaxation  process.  The  data  E;  enters 
the  module  Gj  which  recognizes  it  to 
be  in  a  certain  class  Q;  with  perhaps 
an  error  of  Fj.  The  recognition  Q;  trig- 
gers an  appropriate  goal  decomposi- 
tion (or  subgoal  selection)  function  in 
the  Hj+i  (or  higher)  modules  which 
generates  a  command  (or  hypothesis) 
Cj.  This  command,  modified  by  the 
error  Fj,  generates  a  subcommand  (or 
subhypothesis)  Pi  and  hence  a 
predicted  data  vector  Rj.  The  predic- 
tion R;  may  confirm  the  preliminary 
recognition  Qj  and  pull  the  context  P; 


into  a  more  exact  prediction  via  the 
feedback  loop  involving  Fj.  Alter- 
natively the  prediction  R;  may  cause 
Gj  to  alter  or  abandon  the  recognition 
Qi   in  favor  of  another  recognition 

QV 

Loops  and  Rhythms 

Obviously  such  looping  interac- 
tions involve  timing  and  phase  rela- 
tionships which  may  themselves  have 
information  content.  Many  sensory 
data  patterns,  especially  in  the 
auditory,  visual,  and  kinesthetic 
pathways,  are  time  dependent  and  in- 
volve some  form  of  rhythmic  or  har- 
monic temporal  patterns  as  well  as 
spatial  relationships.  For  example, 
activities  such  as  walking,  running, 
dancing,  singing,  speaking,  and  ges- 
turing all  have  a  distinctly  rhythmic 
and  sometimes  strictly  periodic 
character. 

As  was  discussed  in  part  1  of  this 
series,  temporal  patterns  at  various 
levels  correspond  to  trajectories  with 
different  time  rates  of  change,  and 
hence  (assuming  approximately  the 
same  information  content  stored  as 
trajectories  at  each  level)  different 
periods  or  complete  rhythmical  pat- 
terns. For  example,  at  the  lowest  level 
of  the  auditory  system,  brain  cells  are 
excited  by  mechanical  and  electrical 
stimuli  with  frequencies  ranging  from 
about  20  Hz  to  20,000  Hz.  These  sen- 
sory inputs  thus  have  periodicities 
from  0.00005  to  0.05  seconds. 

The  highest  frequency  a  nerve  axon 
can  transmit  is  about  500  Hz,  but  the 
brain  handles  higher  frequencies  in  a 
manner  somewhat  reminiscent  of  the 
cerebellum's  encoding  of  precise  posi- 
tion. It  encodes  pieces  of  information 
about  the  phase  of  a  wavefront  on  a 
number  of  different  fibers.  This 
means  that  by  knowing  which  fibers 
are  firing  in  which  combinations  at 
which  instants,  one  can  compute  not 
only  what  is  the  fundamental  pitch  of 
the  temporal  pattern  but  what  are  all 
of  its  overtones.  Thus,  the  CM  AC  G 
function  at  the  lowest  level  (or  really 
the  loop  comprised  of  the  lowest  level 
G,  H,  and  M  modules)  can  compute 
the  Fourier  transform,  or  the  autocor- 
relation function,  and  presumably 
even  the  Bessel  function  describing 
the  modes  of  vibration  of  the  cochlear 
membrane. 

Assume  for  example,  that  the  G,  H, 
and  M  modules  in  figure  6  constitute 
a  phase-lock  loop  such  that  the  input 
PATTERN  is  a  signal  f(t)  and  the 


\\^e 


s\erns 


sr.=<oi-==^>.= 


00^ 


a\Srnc.on^^^^;ao9svs' 


xe^^ 


^°^:n(  6809,^^=6809 


o 


CO(T»^ 


ov 


o 


o 

o 

o 

o 


0 


0 


o 


a\eci  ^hVs^ed 


£quwe 


o 


po*c 


asser^^^^^Jppons 


"^^ss- 


(Tiac 


o 

O 

o 


0 


o 


and 


^6*0^ 


and  co'^"":.^  \ot  680?-;-g:d\QA  ' 


dN/f^' 


o 


arn\c 


capa 


,b*W- 


O 

o 


0 


o. 


o 


cof^' 


dA^o'^'^  and 


f  t£>^ 


a\\c' 


ode  V 
den^' 


pfice 


P<°'^".';.,  6809  ..!:,^^';ndeP«^^;;;acW^^e 


E.ceP:;j,d>!:?:.ua\sa' 


enW^'^'^ruset's 


an^a' 
0?  cas' 


maf^ 
code 


Si*" 


d\s\^' 


on  d^s\^ 


o 

o 


0 


o 


oo-vv5°Tofs>'-'°-"*" 


duc^s 


ab\e 


avaWa' 

^ov  a  P^j  30/0  \ot 


^\\ 


^-°tS-^e^' 


.nd  ^an' 


on 


o 


o 


0 


c 


1^^^ 


o 


41906 


O 


o 

o 


0 


0 


Circle  363  on  inquiry  card. 


BYTE  August  1979         75 


0 

NAME 

Pi Pl 


HYPOTHESIS 


PHASE    ERROR 


LOW    PASS 


PREDICTION 
f(t-T|) 


f(t-Ti_) 


PATTERN    f(t)  CONTEXT  CONTEXT 

Figure  6.  A  phase-lock  loop  consisting  of  a  G,  H,  and  M  module.  If  the  H  and  M 
modules  produce  a  set  of  signals  with  nearly  the  same  periodicity  as  the  incoming  signal 
E,  the  G  function  can  compute  a  phase  error  signal  F  which  pulls  the  R  prediction  into 
lock  with  the  E  observation.  The  G  module  can  then  also  compute  an  autocorrelation 
function  which  gives  a  perception  of  pitch. 


PREDICTION  is  another  signal 
f(t  — t).  If  the  processing  module  G 
computes  the  product  of  the  PAT- 
TERN .  PREDICTION,  then  the  out- 
put NAME  is  f  (t)  •  f  (t  -  r).  When  r 
corresponds  to  1/4  of  the  period  of 
the  input  f(t),  a  low  pass  filter  applied 
to  the  output  will  produce  a  phase 
ERROR  signal  which,  when  applied 
to  the  H  module,  can  enable  the 
PREDICTION  signal  f(t-T)  to  track 
and  lock  on  to  the  input  PATTERN 
f(t).  If  the  loop  consists  of  a 
multiplicity  of  pathways  with  dif- 
ferent delays  (t  >  0),  the  output, 
when  processed  through  low  pass 
filters,  will  produce  an  autocorre- 
lation function: 

T 
-T 

such  that: 

qi  =  <t>fATi) 
qz  =  <^//(t2) 

• 

Q=       • 

qt  =  <^//(t£) 
where: 

0<Ti<T2  ...   <ri 
It  has  been  shown  that  such  an 


autocorrelation  function  produces  a 
perception  of  pitch  which  is  in  good 
agreement  with  psychophysical  data. 
In  figure  6  the  presence  of  an  output 
on  element  qj  would  correspond  to 

the  perception  of  pitch  at  a  frequency 

1 

Ti 

Music  and  Language 

Figure  7  suggests  how  a  hierarchy 
of  phase-lock  loops  might  interact  to 
recognize  the  variety  of  periodicities 
which  provide  the  information  con- 
tent in  spoken  language  and  music. 
The  coefficients  that  q;  obtained  from 
the  lowest  level  loop  form  the  input 
(together  with  other  variables)  to  the 
second  level. 

If  we  assume  that  the  sensory  input 
to  the  first  level  consists  of  a  pattern 
rich  in  information,  such  as  music  or 
speech,  then  as  time  progresses  the 
trajectory  of  the  input  vector  to  the 
second  level  will  also  contain  many 
periodicities.  The  principal  difference 
from  the  standpoint  of  information 
theory  is  that  the  periodicity  is  now 
on  the  order  of  0.05  seconds  to  0.5 
seconds.  The  trajectory  input  to  the 
second  level  can,  of  course,  be  sub- 
jected to  a  quite  similar  mathematical 
analysis  as  were  the  trajectories  of 
hair  cell  distortions  and  cochlear  elec- 
trical stimulation  which  were  input  to 
the  first  level. 

The  principal  difference  is  that  at 
the  second  level  and  higher,  informa- 


tion can  be  encoded  for  neural  trans- 
mission by  pulse-frequency  rather 
than  pulse-phase  modulation.  Also, 
some  of  the  mechanisms  by  which 
time  integrals  are  computed  may  be 
different.  Nevertheless,  processing  by 
a  CMAC  G  function  can  transform 
sections  of  the  input  trajectory  into 
output  vectors  so  as,  in  effect,  to  give 
them  names.  Characteristic  patterns, 
or  periodicities,  at  the  second  level 
are  named  notes,  when  the  sensory 
stimulus  is  music.  Where  the  stimulus 
is  spoken  language,  they  may  be 
called  phonemes. 

The  output  of  the  second  level 
forms  part  of  the  input  to  the  third. 
The  G  function  at  the  third  level  com- 
putes the  names  of  strings  of 
phonemes  which  it  calls  words,  or 
strings  of  notes  which  it  calls  tunes. 
The  G  function  at  the  fourth  level 
computes  names  of  strings  of  words 
which  it  calls  sentences  (or  ideas), 
strings  of  tunes  which  it  calls  musical 
passages,  etc.  In  music,  the  pattern  in 
which  the  different  periodicities 
match  up  as  multiples  and  sub- 
multiples  (ie:  the  beat,  notes,  various 
voices,  melodies,  and  chord  se- 
quences) comprise  the  inner  struc- 
ture, harmony,  or  "meaning."  The 
ability  of  the  sensory  processing- 
generating  hierarchy  of  the  listener  to 
lock  on  to  the  periodicities  and  har- 
monies at  many  different  levels  (and 
hence  many  different  periodic  inter- 
vals) is  the  ability  to  "appreciate"  or 
"understand"  the  music. 

Similarly  in  speech  the  ability  of 
the  audio-processing  hierarchy  to 
lock  on  to  periodicities  at  each  level, 
and  to  detect  or  recognize  and  pass  on 
to  the  next  level  the  information  bear- 
ing modulations  or  deviations  in 
those  periodicities,  constitutes  the 
ability  to  "understand"  what  is 
spoken.  If  the  audio  system  locks  on 
only  at  the  first  level,  it  detects 
phonetic  sounds  but  not  words.  If  it 
locks  on  the  first  two  levels  but  no 
higher,  it  detects  words  but  not  mean- 
ingful phrases.  If,  however,  the  audio 
hierarchy  locks  on  at  the  third, 
fourth,  fifth,  and  higher  levels,  there 
is  excited  in  the  mind  of  the  listener 
many  of  the  same  trajectories  and  se- 
quences of  interrelated  and  harmon- 
ious patterns  (ie:  goals,  hypotheses, 
sensory  experiences)  as  exist  in  the 
mind  of  the  speaker. 

This  gives  the  speaker  the  ability  to 
transmit  messages  and,  even  more 
important,  to  manipulate  the  mind  of 


76        August  1979  ©  BYTE  Publications  Inc 


the  listener  to  achieve  his  own  goals. 
He  can  recruit  help,  enlist  sympathy, 
give  orders,  and  transmit  all  forms  of 
sophisticated  signals  related  to 
dominance,  submission,  and  social 
interaction.  Furthermore,  by  this 
mechanism  he  can  induce  into  the 
highest  levels  of  the  sensory  process- 
ing hierarchy  of  the  listener  recalled 
memories  of  his  own  experience.  He 
can  tell  tales,  relate  stories,  and 
thereby  provide  others  with  second- 
hand information  as  to  what 
strategies  and  goal  decomposition 
rules  he  personally  has  found  to  be 
successful. 

Origin  of  Language 

One  of  the  most  basic  features  of 
language  is  that  it  is  a  form  of 
behavior.  That  seems  an  obvious 
thing  to  say,  but  evidently  it  is  not. 
Many  experts  feel  that  because  lan- 
guage is  connected  with  the  intellect 
(ie:  a  higher  function)  it  is  quite 
divorced  from  mere  motor  behavior. 
However,  there  is  no  such  thing  as 
mere  motor  behavior.  All  behavior  is 
the  final  output  trajectory  in  the 
decomposition  of  high  level  goals. 
The  intellect  is  not  something  distinct 
from  behavior.  It  is  the  deep  structure 
of  behavior.  It  is  the  set  of  nonter- 
minal trajectories  which  generate  and 
coordinate  what  finally  results  in  the 
phenomena  of  purposive  or  inten- 
tional action. 

Language  is  certainly  like  other 
behavior  in  that  it  results  from  the 
coordinated  contractions  of  muscles; 
in  the  chest,  throat,  and  mouth.  Like 
any  other  behavior  such  as  walking, 
dancing,  making  a  tool,  or  hunting 
for  prey,  language  is  both  learned  and 
goal  directed. 

The  infant  is  born  with  only  the 
most  basic  verbal  reflexes.  At  first 
primitives  are  learned  (coos,  gurgles, 
cries,  and  phonetic  sounds  of  various 
types),  then  strings  of  primitives 
(words),  and  finally  strings  of  strings 
(phrases),  etc.  The  sensory  processing 
system  stores  (ie:  records)  sounds 
from  the  environment  as  R;  trajec- 
tories. Later  the  behavior-generating 
system  learns  to  produce  verbal  out- 
puts which  mimic  or  duplicate  these 
stored  trajectories. 

As  with  all  behavior,  the  purpose 
of  language  is  to  obtain  reward,  to 
avoid  punishment,  and  to  achieve 
success  in  the  social  dominance 
hierarchy.  The  unique  feature  of 
language  behavior  is  that  it  allows 


CONCEPT 
DETECTED 


LANGUAGE  GOAL 
TO  BE  ENCODED 


PHRASE  ERROR 


PHRASE 
DETECTED 


PREDICTED  PHRASE 


PHRASE  SELECTED 


WORD  ERROR 


PREDICTED  WORD 


WORD 
DETECTED 


PITCH  ERROR 


PHONEME 

(PITCH) 
DETECTED 


PREDICTED  PHONEME  (PITCH) 


PHASE  ERROR 


PREDICTED    FREQUENCY 


FREQUENCY 
DETECTED 


FEEDBACK 
FROM    STRETCH 
RECEPTORS 
IN   MUSCLES 


LUNGS,    LIPS 
LARYNX,   TONGUE 


VOICE 
OUTPUT 


Figure  7.  A  crosscoupled  hierarchy  in  the  hearing-speech  system.  The  generating  hierar- 
chy decomposes  language  goals  into  strings  of  verbal  output.  When  speech  is  being 
generated,  the  sensory  processing  hierarchy  provides  feedback  to  control  intensity  and 
modulation.  When  listening  only,  the  generating  hierarchy  provides  hypotheses  and 
predictions  for  use  in  detecting,  recognizing,  following,  and  understanding  the  sensory 
input. 


communication  between  individuals 
to  enlist  help,  to  issue  commands,  to 
organize  group  behavior,  and  to 
receive  feedback  information  from 
the  sensory  experiences  of  others. 

Writing 

Certainly  written  language,  at 
least,  had  its  origins  in  goal-seeking 
activities.  For  example,  the  earliest 
writing  in  China  began  around  2000 
BC  as  ideograms  or  symbols,  engrav- 
ed on  bones  and  shells  for  the  purpose 
of  asking  questions  of  heaven.  Each 
stroke  or  series  of  strokes  asks  a  cer- 
tain question  or  seeks  guidance  for  a 
particular  branch  point  in  the 
behavioral  trajectory  of  the  life  of  the 
asker. 

The  earliest  of  all  known  writing  is 


the  Uruk  tablets  discovered  in  the 
Mideast  and  dated  about  3100  BC. 
This  writing  appears  to  be  almost 
exclusively  a  mechanism  for  recor- 
ding business  transactions  and  land 
sales.  These  written  symbols  are  now 
thought  to  be  pictorial  lists  of  tokens 
used  for  keeping  track  of  merchandise 
or  livestock.  The  tokens  themselves 
first  appeared  5000  years  earlier  dur- 
ing the  beginning  of  the  Neolithic 
period  in  Mesopotamia  when  human 
behavior  patterns  related  to  hunting 
and  gathering  were  being  replaced  by 
others  related  to  animal  husbandry, 
agriculture,  and  the  village  market 
place. 

This  token  method  of  accounting 
apparently  served  its  purpose  well, 
for  the  system  remained  virtually  un- 


August  1979  ©  BYTE  Publications  Inc        77 


changed  for  about  5  millennia  until 
the  early  Bronze  Age  when  cities  and 
city-states  became  the  most  advanced 
social  organizations,  and  commerce 
grew  into  a  large  scale  and  complex 
enterprise.  Then  the  requirements  for 
more  efficient  accounting  procedures 
led  to  the  pictorial  listing  of  tokens  by 
writing  on  tablets  —  an  early  form  of 
double-entry  bookkeeping. 

Once  skill  in  this  form  of  writing 
became  widespread  and  commonly 
practiced,  only  a  few  additional  sym- 
bols and  some  rules  of  syntax  were  re- 
quired to  express  decrees,  record 
dates,  and  relate  accounts  of  signifi- 
cant events. 

Thus,  the  language  skill  of  writing 


evolved  in  small  increments  over 
many  generations  from  the  goal 
directed  manipulation  of  physical  ob- 
jects; first  the  objects  themselves, 
then  token  objects,  and  finally  images 
or  symbols  representing  the  tokens. 
The  meaning  of  the  symbols,  as  well 
as  the  rules  of  syntax,  were  obvious 
to  anyone  having  an  everyday  fami- 
liarity with  the  manipulation  rules  for 
tokens.  These  in  turn  mimicked  the 
rules  for  manipulation  of  the  objects 
of  merchandise.  The  manipulation  of 
symbols  in  written  language  is  a  form 
of  goal-seeking  behavior  which 
evolved  from,  and  remains  similar  to, 
the  manipulation  of  physical  objects. 
Skill  in  writing,  as  any  other  com- 


64KB  MICROPROCESSOR 
MEMORIES 


S-100- $750.00 
LSI  -  $750.00 


m 


CI-S100  64K  X  8 


iliiiiii 
•lilliii 
iiiiiili 


CI-1103  32KX  16 


j_-.-..lia:i'i 


CI-6800  64K  X  8 


CI-8080  64K  X  8 


•  SBC  80/10 -$750.00 

•  6800 -$750.00 

CI-S100  —  64K  X  8  on  a  single  board. 
Plugs  directly  into  the  IMSAI,  MITS, 
TDL,  SOL  and  most  other  S-100  Bus 
computers.  No  wait  states  even  with 
ZBO  at  4Mhz.  Addressable  in  4K  in- 
crements. Power  requirement  6  watts. 
Price  $750.00. 

CI-1103  —  8K  words  to  32K  words  in  a 
single  option  slot.  Plugs  directly  into 
LSI  11,  LSI  11/2,  H11  &  PDP  1103. 
Addressable  in  2K  increments  up  to 
1 28K.  8K  X  1 6  $390.00.  32K  x  1 6  $750.00 
qty.  one. 

CI-6800  —  16KB  to  64KB  on  a  single 
board.  Plugs  directly  into  Motorola's 
EXORcisor  and  compatible  with  the 
evaluation  modules.  Addressable  in 
4K  increments  up  to  64K.  16KB  $390.00. 
64KB  $750.00. 

CI-8080  —  16KB  to  64KB  on  single 
board.  Plugs  directly  into  Intel's  MDS 
800  and  SBC  80/10.  Addressable  in 
4K  increments  up  to  64K.  16KB  $390.00. 
64KB  $750.00 


C 


Tested  and  burned-in.  Full  year  warranty. 

Chrislin  Industries,  Inc. 

Computer  Products  Division 

31352  Via  Colinas  •  Westlake  Village,  CA  91361  •  213-991-2254 


plex  goal-seeking  activity,  is  acquired 
through  painstaking  training,  endless 
practice,  and  numerous  corrections  of 
mistakes  by  a  teacher.  It  is  learned  in 
stages,  the  lowest  level  primitives 
first  (forming  letters),  then  strings  of 
primitives  (words),  then  strings  of 
strings  (sentences),  and  so  on.  Only 
when  the  rules  of  spelling,  grammar, 
and  composition  are  more  or  less 
mastered  can  the  scribe  express  or  en- 
code a  thought  (ie:  a  high  level  trajec- 
tory) into  a  string  of  written  symbols. 

Speech 

The  origin  of  speech  is  much  less 
certain  since  it  dates  from  an  earlier 
period.  In  fact,  if  we  include  the 
sounds  of  whales,  animals,  birds,  and 
even  insects  as  a  form  of  speech, 
spoken  language  predates  the  origin 
of  humanity  itself.  Surely  any  be- 
havior pattern  which  communicates  a 
threat,  signals  submission,  expresses 
fear  or  acceptance,  is  a  form  of  lan- 
guage whether  it  be  audible  speech  or 
sign  language,  whether  it  be  express- 
ed by  a  mouse  or  a  human.  By  this 
definition,  some  speech  is  very  simple 
—  a  single  facial  expression,  gesture, 
chirp,  growl,  or  squeak  for  each  emo- 
tional state  encoded  or  intent  express- 
ed. Throughout  the  animal  kingdom 
however,  there  exists  a  great  variety 
of  modes  of  expression  and  many  dif- 
ferent levels  of  complexity.  Clearly 
sounds  such  as  the  growls,  whines, 
barks,  and  howls  of  the  wolf  express 
an  extremely  complex  variety  of 
social  communications.  One  can  easi- 
ly feel  caught  up  in  a  primitive  com- 
munity sing-along  when  listening  to  a 
recording  of  a  wolf -pack  chorus. 

As  we  ascend  the  ladder  of  be- 
havioral complexity,  we  find  a  cor- 
responding increase  in  the  ability  to 
communicate  complex  messages.  In 
most  cases  this  appears  to  be  not  so 
much  an  increased  vocal  capacity  as 
an  increased  complexity  of  deep 
structure  underlying  overt  behavior. 
This  implies  that  the  ability  to  speak 
derives,  first  of  all,  from  having 
something  to  say  (ie:  from  having  in- 
ternal trajectories  of  sufficient  com- 
plexity that  to  attach  facial  expres- 
sions, gestures,  and  audible  sounds  to 
them  results  in  complex  and  subtle 
messages). 

Primitive  Human  Speech 

The  most  ancient  forms  of  human 
speech  that  survive  today  are  the 
tribal  dances  of  the  few  remaining 


78        August  1979  ©  BYTE  Publications  Inc 


Circle  47  on  inquiry  card. 


MAl<^ 


The  ORIGINAL  Computer  People  Who  KNOW  computers 
[and  offer  EVERYTHING  you  need  in  Small  Computer  Systems! 


If  I  niiNVJi  yuu  iiecu  iii  oiiiaii  v^Vyrii 

Compare  PRICE,  QUALITY,  DELIVERY,  SERVICE  and 
you'll  see  why  you  don't  have  to  look  anyplace  else! 


.^' 


SOFTWARE 


.00 


^ecatr/ 


,luHVioe 


ot-Vei'as 


H/VZE^"^^^^ 


1AA0.- 
A500.- 


'AAO.--i, 


A3 .  ^ot  P'f'*^® 


WWcfO       \  ol^V.t 

779-2  ■  ■  ■  ■  \  ^ot 

703-0- •■•'   ^ 


Our  Prices  are  too  low  to  advertise.  Please  call 
We  now  carry  a  full  line  of 
Alpha  — Micro  Products 


c^tL* 


\ot 


pnces 


/   Here  are  nine  packages  thati 

enable  you  to  make  full  use  of 

tne  potential  in  your  small 

computer  system: 

ACCOUNTS  RECEIVABLE 

INVENTORY 

ORDER  ENTRY 

WORD  PROCESSING 

PAYROLL 

REAL  ESTATE  IWGT 

MEDICAL-DENTAL 

MAILING  PROGRAM 

SHIPPING  &  RECEIVING 

and  MORE! 

Microsoft  Basic,  Fortran,  Cobol 

available 

CALL*  for  prices 


COM^' 


W  pnce 


^1* 


DSC-2--, 
Ob\eOen' 


^9!!;Ss^ 


\  pnces 


MORE  SPECIALS 


Decwriterll $1595.00 

Qume  Sprint  5/45 

RO 2795.00 

Persci  277  Dble 

Density 1395.00 

lnisaiPCS80/15 599.00 

\  Anadex  DP  8000 

Printer  995.00 


44  Column  Printer  . .  ..$295.00 

Livermore  Accoustic 

Coupler 249.00 

Javelin  9"  Monitor 159.95 

Centronics 

Micro  P-1  Printer  . ..    495.00 


We  tiave  a  full  staff  of  Programmers  and  Computer 
Consultants  to  design,  configure  and  deliver  a  Turnkey 
Computer  System  to  meet  your  specific  requirements. 


SYNCHRO-SOUND 

The  Computer  People 

193-25  Jamaica  Avenue,  Jamaica,  New  Vbrk  11423 

21 2/468-7067     TWX  71 0-582-5886 


ENTERPRISES,  INC. 


Hours  9-4  Daily 
and  Saturday 

Visit  our  new  stiowroom 
Working  units  on  display 

BankAmericard      Master  Charge 


Circle  355  on  inquiry  card. 


BYTE  August  1979 


79 


stone-age  peoples.  In  such  rites,  infor- 
mation on  vital  subjects  such  as  hun- 
ting (including  the  habits,  ferocity, 
and  vulnerable  areas  of  the  prey),  the 
proper  techniques  of  stalking,  using 
weapons,  etc,  are  conveyed  by  dance, 
symbolic  gestures,  pantomime, 
songs,  and  shouts,  as  the  hunters 
relate  (indeed  reenact)  the  exploits  of 
the  hunt.  The  storytellers  replay  the 
behavioral  trajectories  of  their  own 
actual  hunting  experience  and  attach 
verbal  symbols  and  gestures  to  the 
portions  which  cannot  be  literally 
acted  out. 

Even  in  modern  cultures,  the  ma- 
jority of  everyday  speech  consists  of 
relating  experiences  ("...he  did  this, 
and  I  said  that...,"  etc).  This  is  simply 
the  straightforward  encoding  of  be- 
havioral trajectories,  or  the  recalled 
sensory  experiences  addressed  by 
those  behavioral  trajectories,  into  a 
string  of  language  tokens  or  symbols 
such  as  gestures,  vocal  cord,  tongue, 
and  lip  manipulations.  Thus,  in  the 
final  analysis,  all  language  is  a  form 
of  goal-directed  manipulation  of 
tokens  and  symbols.  The  ultimate 
result  is  a  manipulation  of  the  minds. 


and  hence  the  actions,  of  other  mem- 
bers of  the  society.  Language  is  a  tool 
by  which  a  speaker  can  arouse  or  im- 
plant in  the  listener  a  great  variety  of 
behavioral  goals,  hypotheses,  and 
belief  structures.  By  the  use  of  these 
means,  a  speaker  can  command,  in- 
struct, threaten,  entertain,  or  chastise 
other  persons  in  his  group  to  his  own 
benefit  and  for  his  own  ends. 

The  implication  for  research  in 
language  understanding  is  that  there 
is  much  to  be  learned  from  the  rela- 
tionship between  language  and  other 
forms  of  behavior.  How,  for  exam- 
ple, can  behavioral  goals  and  trajec- 
tories be  encoded  into  strings  of 
language  symbols  for  making  re- 
quests, issuing  commands,  and 
relating  sensory  experiences?  How 
can  patterns  of  trajectories  be  en- 
coded and  transmitted  by  one 
processing-generating  hierarchy  so  as 
to  be  received  and  reconstructed  by 
another? 

Clearly,  language  recognition 
depends  on  many  of  the  same  mecha- 
nisms by  which  the  rhythms,  perio- 
dicities, and  harmonic  patterns  of 
music,  song,  and  poetry  are  recog- 


nized, tracked,  and  predicted  at  many 
different  levels.  Consider  that 
children  are  fascinated  by  rhythmical 
sounds,  rhymes,  and  the  repetition  of 
familiar  stories.  Why  do  adolescents 
find  it  so  rewarding  to  hear  the  same 
popular  song  over  and  over?  Is  it  not 
the  predictability,  the  lock-on  which 
can  be  achieved  due  to  a  correspon- 
dence between  the  stored  internal 
model  and  the  observed  sensory  data 
stream?  And  why  are  the  rhythmic 
movements  of  dancing  and  marching 
to  music  so  compelling?  Is  it  not  the 
correlations  and  harmonic  relation- 
ships between  trajectories  in  the 
behavior-generating  and  sensory- 
processing  hierarchies? 

Music  is  a  relatively  simple  domain 
for  the  study  of  the  time  dependent 
interactions  between  stored  models 
and  input  data,  and  the  study  of 
music  recognition  by  computer  in  an 
almost  completely  unexplored  field. 
Thus,  it  is  a  fertile  area  for  computer 
hobbyists  and  other  researchers  with 
limited  resources. 

Part  4  will  discuss  some  operations 
of  the  highest  hierarchical  level  such 
as  will,  emotion,  and  creativity.  ■ 


SINEWAVE 
MARKET 

ANALYSIS 


CAN  YOU  USE  YOUR  MICROCOMPUTER  TO 
OUTWIT  THE  STOCKMARKET? 


Stockmarket  cycles  and  sinewave  forms  have  been  correlated  with  fascinating  results.  Forecasts  with  unusually  low 
prediction  error  can  now  be  made.  They  were  developed  by  a  degreed  engineer  who  possesses  a  rare  mathematical 
mind  and  has  nineteen  years  experience  with  business  computer  applications.  An  early  interest  In  the  stockmarket 
led  him  to  the  striking  similarity  between  sinewave  forms  and  stockmarket  cycles.  For  two  decades  he  studied  the 
market  and  collected  data.  But,  it  wasn't  until  he  recently  acquired  his  own  microcomputer  that  it  became  feasable 
to  make  the  necessary  correlations. 

THE  RESULTS     •    His  programs,  contain  multiple  sinewave  functions  AND  make  twenty-four  month  projections 
that  yield  prediction  errors  of  less  than  372%  over  the  40  years  of  historical  base  data.  Although 
he  makes  no  claims  about  the  predictive  accuracy  of  this  method  for  the  future,  he  is  doubtful 
that  anyone  can  develop  a  more  accurate  mathematically  based  predictive  tool. 
•    A  programmed  trading  method  that  utilizes  projections  of  the  historical  data  to  select  buy/sell 
opportunities.  Annual  yields  of  25%  were  derived  from  trades  over  the  40  year  historical 
(^  period. 

THIS  IS  THE  MOST  IDEAL  AND  PRACTICAL  APPLICATION  FOR  MICROCOMPUTERS  DEVELOPED  TO  DATEI 

•  It  is  not  a  "kids"  game  designed  to  occupy  idle  time. 

•  rr  [S  an  unusual  challenge  for  anyone  who  wants  real  action. 

HERES  WHAT  WE'LL  SEND  YOU 

ON  5%"  DISCETTE  &  LISTING  FOR  $35 

•  Monthly  New  York  Stock  Exchange  Index 
(Average  of  Friday  Closes  —  1939  to  Present) 

•  Programs  to  Project  NYSE  Index  into  Infinite  Future 
(User  instructions  included) 

•  Trading  Program  for  Future  Projections 
(User  instructions  included) 

•  All  available  in  North  Star  Basic  or 
other  by  special  arrangement. 


ORDER  DIRECT 
SMA;  P.O.  Box  415;  Burlington,  Iowa  52601 


I 


Name 

Street  

City,  State,  Zip_ 
Credit  Card  No.  _ 

Signature 

D  Checl< 

D  Monev  Order 


Exp.  Date. 


D 


D 


a 


a  n 


a 


.J 


80       August  1979  ©  BYTE  Publications  Inc 


Circle  330  on  Inquiry  card. 


p  ^  p  ^  ^  pi  ^ 

prppp 


imiiJ  ©  mmin)  uat  i  im  s- 


A  newquaiterly  t^ 
the  staff  of  BYTE 

This  totally  new  publication  is  entertaining,  infomiative,  and  uncomplicated.  It  is  edited  for 
the  attorney,  accountant,  writer  and  other  professional  or  business  person  aware  of  the 
personal  computer  as  a  tool  for  business,  education,  home  entertainment,  laboratory  work 
and  other  applications. 

Compiled  and  edited  by  the  staff  of  BYTE,  latest  developments  covered  in  onComputing 
will  include  creative  uses  of  the  small  computer,  books  for  the  computer  user,  how  and 
where  to  buy  your  personal  computer  and  numerous  features  concerning  the  fascinating 
worid  of  the  microprocessor. 

Add  onComputing  to  your  library  of  'must'  publications.  Act  now,  subscribe  and 
receive  four  (4)  issues  a;  $8.50  for  one  year  (U.S.);  Canada  and  Mexico;  $10.00. 


GUIDE  TO  PERSONAL  «^  COMPUTING 


SGBSCRiBE  NOW!  COMPLETE  AND  AVML  ATTACHED  POSTAGE  PAID  REPLY  CARD 

onComputing,  Inc.  D  70  Main  St  D  Peterborough,  MH  03458  n  Dial  toil  free  800-258-5485  (In  NH  924-7217) 


TM 


Exploring  TRS-80  Graphics 


George  H  Yeager 

223  Riverside  Dr 

St  Albans  WV  25177 


/~ 


CONTROL  BYTE 


"X 


DIGIT   I 


DIGIT  2 


"X/^ 


8' 


GRAPHIC  MOOE- 


UNUSEO- 


2' 


I  SETS  A  CELL  ELEMENT  ON 
"O"  RESETS  A  CELL  ELEMENT 


■ 

2 

4 

8 

1 1 

2' 

Figure  1:  Cellular  division  of  a  graphics  cell  on  the  video  display  screen.  The  control 
byte  is  divided  into  2  hexadecimal  digits.  Individual  bits  of  digit  1  are  marked  with 
primes  (1 '),  and  bits  are  designated  by  their  corresponding  power  of  2  (rather  than 
sequentially).  Bit  8'  controls  the  graphics  mode.  Bit  4'  (marked  X)  is  not  used. 


Radio  Shack  seems  to  hide  the  neat 
little  jewels  of  information  a  hobbyist 
needs  to  make  a  treasure  of  the 
TRS-80.  One  jewel  is  how  to  use  the 
computer's  graphics  capability  once 
you  squeeze  into  the  world  of 
machine  language  by  use  of  the 
T-BUG  monitor.  Beyond  the  excellent 
Level  1  User's  Handbook,  there  has 
been  little  information  until  recently. 

Between  sessions  of  disassembling 
the  undocumented  control  routines 
for  keyboard,  video,  and  cassette,  I 
employed  a  "crystal  ball"  to  unravel 
the  mystery  of  machine  language 
graphics  control.  (TRS-80  owners 
must  be  resourceful.)  Here  is  what  I 
found. 

First,  video  display  is  in  main 
memory  address  space  and  resides 
between  hexadecimal  locations  3C00 
to  3FFF.  Address  3C00  corresponds  to 
the  upper  left  corner  of  the  monitor 
screen  and  3FFF  to  the  lower  right 
corner.  Anything  placed  in  this  block 
of  memory  will  appear  on  the  display 
at  a  specific  cell  (section  of  display 
grid)  as  a  dot-matrix  alphanumeric 
character  or  as  a  6  element  graphic 
character  (the  TRS-80  hardware  does 
that). 

The  Radio  Shack  video  display 
work  sheet  shows  the  location  of  each 
of  the  1024  cells  in  the  video  display 
format.  There  are  64  cells  per  line  and 
16  lines  on  the  page.  Figure  1  shows 
how  each  cell  is  divided  into  six 
elements  for  graphics.  The  bottom 
two  elements  are  always  dark  in  the 
alphanumeric  mode,  providing  line 
spacing. 

To  activate  the  graphics  mode  for  a 


82        August  1979  ©  BYTE  Publications  Inc 


Circle  144  on  inquiry  card. 


Enterprise 

4500 

CD 

Call  show  three;  we  came  here  with            'Enterprise* 

4501 

OE 

H  L  pointing  to  symbol  table  and  D  E 

4502 

45 

pointing  to  graphic  cell  memory  location. 

4503 

3E 

Get  constant  to  point  to  next  line  start 

4504 

3D 

4505 

83 

Add  it  to  cell  location 

4506 

5F 

Save  new  LSB  line  start  ADR 

4507 

30 

Jump  if  no  carry 

4508 

01 

4509 

24 

Increment  H  if  L  carried 

450A 

CD 

Call  show  three 

450  B 

OE 

450C 

45 

450D 

C9 

Return  to  caller 

450E 

01 

*show  three* 

450  F 

03 

Set  B,  C  to  three  characters 

4510 

00 

4511 

ED 

Transfer  three  characters 

4512 

BO 

4513 

C9 

Return 

4514 

AO 

Graphic  symbol  table 

4515 

AB 

For  Enterprise 

4516 

A1 

For  Enterprise 

4517 

8A 

For  Enterprise 

4518 

83 

For  Enterprise 

4519 

8B 

For  Enterprise 

Listing  1:  Demonstration  routine  for  TRS-80  graphics  in  Z-80  machine  language,  for  use 
with  T-BUG  or  other  monitor.  This  displays  the  starship  Enterprise.  Call  this  as  a 
subroutine  after  preserving  necessary  registers.  In  the  subroutine,  registers  H  and  L  hold 
the  output  table  pointer.  Registers  D  and  E  contain  the  upper  left  corner  location  of 
graphic  symbol  within  the  display  memory.  Registers  A,  B,  C,  D,  E,  H,  and  L  will  be 
altered.  This  is  meant  only  as  a  demonstration;  it  may  not  be  general  enough  for  other 


specific  cell  on  the  screen,  data  with  a 
value  of  hexadecimal  80  or  above 
must  be  placed  into  the  memory  loca- 
tion with  which  it  corresponds.  The 
most  significant  bit  of  the  byte  sets 
the  graphics  mode;  placing  a  value  of 
7F  or  lower  in  a  location  activates  the 
alphanumeric  mode  for  the  related 
cell. 

Looking  at  figure  1,  note  that  bits 
1 '  and  2 '  of  digit  1  control  the  bot- 
tom two  elements  in  the  cell.  (These 
read  as  "one  prime"  and  "two  prime"; 
primes  indicate  digit  1.)  Note  also 
that  bits  1,  2,  4,  and  8  of  digit  2  con- 
trol the  top  four  cell  elements.  In  the 
graphics  mode,  bit  4'  is  a  "don't  care" 
(ie,  it  is  not  used).  If  the  cell  element 
control  bit  is  set  to  a  1,  the  element 
will  be  lit  on  the  screen.  If  the  element 
control  bit  is  reset  to  0,  the  element 
will  not  be  lit. 

The  element  control  bits  are  iden- 
tified in  figure  1  by  their  decimal 
weight.  The  sum  of  the  bits  set  to  1  in 


each  section  of  the  cell  can  be  con- 
verted to  hexadecimal  to  determine 
the  code  for  each  digit  in  the  graphic 
control  byte.  Figure  2  (on  page  84) 
shows  all  graphic  characters  and  the 
proper  generation  codes,  so  that 
manipulation  may  be  made  easier. 

The  system  is  simple  and  flexible, 
allowing  many  shapes  to  be  generated 
with  one  byte  of  code.  It  is  unfor- 
tunate that  the  cell  shape  is  unsym- 
metrical,  thus  complicating  rotation 
and  transformation  of  graphic 
displays.  However,  the  mystery  is 
now  solved.  A  whole  new  world  of 
more  finely  detailed  and  faster 
displays  is  available  for  TRS-80  fans. 

I  have  provided  a  small  demonstra- 
tion program  shown  as  listing  1.  Run- 
ning it  under  T-BUG  will  give  an  idea 
of  the  capabilities  provided  by 
machine  language  control  of  the 
TRS-80  graphics.  Good  luck,  and  let 
me  know  what  you  find  out  from 
your  crystal  ball. 


16K  Static  RAM 
Boards  for  the  < 
SS-50  Bus  ^ 

•  Gold  bus  connectors 

•  4  separate  4K  Blocks 

•  Individual  Addressing, 
Write  Protect,  and  Enable/ 
Disable  for  each  block  Memories 

S29813 

As  above  with 

Sockets  and 

Software 

control 

features. 

8368^8 

All  GIMIX  memory  boards  are  assembled, 

Burnt-ln  for  2  weeks,  and  tested  at  2  MHz. 

Add  $32.00  for  250  ns  parts 

Tl  TMS  4044's  —  10%  SUPPLY 
(Not  an  "equivalent",  but  the  real  thing!) 

450  ns  $5.00  each       250  ns  $6.00  each 

8K  PROM  BOARD  $98.34 

2708s     $7.90  each 

SS  50  BUS  80  X  24 
VIDEO  BOARD 


With  hardware  scrolling,  x-y  addressable  cursor  and 
multiple  character  generators.  It  includes  a  TMS  2716 
EPROM  that  contains  a  full  128  upper  and  lower  case 
ASCII  character  set  with  true  descenders;  plus  a  socket 
for  another  TfvlS  2716  for  an  optional  128  character  set; 
plus  2K  of  RAM  for  user-defined  programmable 
character  sets.  This  gives  the  user  the  ability  to  create 
his  own  heiroglyphics,  alphabet,  graphic  elements,  etc., 
and  store  them  on  PROM,  disk,  or  tape. 

The  user  can  choose  and  intermix  384  different 
characters  from  any  or  all  of  the  character  generatcrs 
and  display  up  to  256  at  one  time,  normally  or  inversely. 
and  at  full  or  half  intensity,  at  any  location  on  the 
screen.  Contiguous  8x10  character  cells  permit  solid 
lines  and  connecting  patterns  with  user  definable 
graphic  elements. 

It  is  addressable  to  any  2K  boundary.  GHOSTable  ad- 
dressing allows  multiple  boards  al  ttie  same  address, 
making  it  ideal  for  multiuser  applications.  The  available 
software  includes  a  GMXBUG  video  based  3K  ROM 
monitor,  stand  alone  driver  routines,  and  a  program  to 
create  user  defined  characters. 

DELUXE  VERSION     $458.76 

other  Video  Boards  from  $198.71 


16K  SYSTEMS    $1294.29 

Includes;     Mainframe     cabinet,     mother 

board,  power  supply,  fan,  CPU,  16K  static 

RAM,  and  choice  of  1/0  card. 

Other  packages  available. 

Add  $10.  handling  charge  on  orders  under  $200. 


inc. 


Gimix 

1337  WEST  37th  PLACE 
CHICAGO,  ILLINOIS  60609 
(312)  927-5510  •  TWX  910-221-4055 

The  Company  that  delivers. 

Quality  Electronic  products  since  1975. 


Auguse  1979  ©  BYTE  Publications  Inc        83 


J3 

rsi 


S 

a 
o 

s 


! 

I 

6 


3 

o 


Fuq^  ^B=  W=U^  ^S' 


H!^3"  SiHS^ 


H 


Fffq- 


1% 


-o  — 

3 
O 


a  5 

ai    a, 
3    ^ 


84        August  1979  ©  BYTE  Publications  Inc 


"BOOKS  OF  INTEREST  TO  COMPUTER  PEOPLE" 


More  BYTE 


:^f  • 


S 


in  your  future 


Circle  36  on  inquiry  card. 


BYTE  AugusI  1979         85 


And  the  future 


THE  BYTE  BOOK  OF  COMPUTER  MClSIC  combines 
the  best  computer  music  articles  from  past  issues  of 
BYTE  Magazine  witin  exciting  new  material— all  written 
for  the  computer  experimenter  interested  in  this 
fascinating  field. 

You  will  enjoy  Hal  Chamberlin's  "A  Sampling  of 
Techniques  for  Computer  Performance  of  Music", 
which  shows  how  you  can  create  four-part  melodies 
on  your  computer.  Forthe  budget  minded,  "A$19Music 
Interface"  contains  practical  tutorial  information— and 
organ  fans  will  enjoy  reading  "Electronic  Organ  Chips 
For  Use  in  Computer  Music  Synthesis". 

New  material  includes  "Polyphony  Made  Easy"  and 
"A  Terrain  Reader".  The  first  describes  a  handy  circuit 
that  allows  you  to  enter  more  than  one  note  at  a  time 
into  your  computer  from  a  musical  keyboard.  The 
"Terrain  Reader"  is  a  remarkable  program  that  creates 
random  music  based  on  land  terrain  maps. 

Other  articles  range  from  flights  of  fancy  about  the 
reproductive  systems  of  pianos  to  Fast  Fourier  trans- 
form programs  written  in  BASIC  and  6800  machine 
language,  multi-computer  music  systems,  Walsh 
Functions,  and  much  more. 

For  the  first  time,  material  difficult  to  obtain  has  been 
collected  into  one  convenient,  easy  to  read  book.  An 
ardent  do-it-yourselfer  or  armchair  musicologist  will 
find  this  book  to  be  a  useful  addition  to  the  library. 


^^ 


ISBN  0-931718-11-2 
Editor:  Christopher  P.  Morgan 
Pages:  approx.  128 
Price:  $10.00 


1  rKH ffit'li  iiu, 


SaPERWOMPaS  is  an  excit- 
ing computer  game  incorpo- 
rating the  original  structure  of 
the  WGMPaS  game  along 
with  added  features  to  make 
it  even  more  fascinating.  The 
original  game  was  described 
in  the  book  What  To  Do  After 
You  Hit  Return,  published  by 
the  People's  Computer  Com- 
pany. Programmed  in  both 
6800  assembly  language  and 

BASIC,  SaPERWGMPGS  is  not  only  addictively  fun, 
but  also  provides  a  splendid  tutorial  on  setting  up 
unusual  data  structures  (the  tunnel  and  cave  system 
of  SCPERWUMPUS  forms  a  dodecahedron).  This  is  a 
PAPERBYTE™  book. 


ISBN  0-931718-03-1 
Author:  Jack  Emmerichs 
Pages:  56 
Price:  $6.00 


Tiny 

AssemMar 

6800 


\s_ 


sss:as^l   - 


J 


TINY  ASSEMBLER  6800, 
Version  3.1  is  an  enhancement 
of  Jack  Emmerichs'  success- 
ful Tiny  Assembler.  The  origi- 
nal version  (3.0)  was  described 
first  in  the  April  and  May  1977 
issues  of  BYTE  magazine, 
and  later  in  the  PAPERBYTE™ 
book  TINY  ASSEMBLER 
6800  Version  3.0. 

In  September  1977,  BYTE 
magazine  published  an  article 
entitled,  "Expanding  The  Tiny  Assembler".  This  pro- 
vided a  detailed  description  of  the  enhancements 
incorporated  into  Version  3.1,  such  as  the  addition  of  a 
"begin"  statement,  a  "virtual  symbol  table",  and  a 
larger  subset  of  the  Motorola  6800  assembly  language. 

All  the  above  articles,  plus  an  updated  version  of  the 
user's  guide,  the  source,  object  and  PAPERBYTE''''*^ 
bar  code  formats  of  both  Version  3.0  and  3.1  make  this 
book  the  most  complete  documentation  possible  for 
Jack  Emmerichs'  Tiny  Assembler. 

ISBN  0-931718-08-2 
Author:  Jack  Emmerichs 
Pages:  80 
Price:  $9.00 


A  walk  through  this  book  brings  you  into  Ciarcia's 
Circuit  Cellar  for  a  detailed  look  at  the  marvelous 
projects  which  let  you  do  useful  things  with  your  micro- 
computer. A  collection  of  more  than  a  year's  worth  of 
the  popular  series  in  BYTE  magazine,  Ciarcia's  Circuit 
Cellar  includes  the  six  winners  of  BYTE's  On-going 
Monitor  Box  (BOMB)  award,  voted  by  the  readers 
themselves  as  the  best  articles  of  the  month:  Control 
the  World  (September  1977),  Memory  Mapped  lO 
(Novemberl977),ProgramYourNextEROM  in  BASIC 
(March  1978),  Tune  In  and  Turn  On  (April  1978),  Talk 
To  Me  (June  1978),  and  Let  Your  Fingers  Do  the  Talking 
(August  1978). 

Each  article  is  a  complete  tutorial  giving  all  the  details 
needed  to  construct  each  project  Gsing  amusing 
anecdotes  to  introduce  the  articles  and  an  easy-going 
style,  Steve  presents  each  project  so  that  even  a 
neophyte  need  not  be  afraid  to  try  it 


^^ 


ISBM  0-931718-07-4 
Author:  Steve  Ciarcia 
Pages:  approx.  128 
Price:  $8.00 


is  right  now! 


BASEX,  a  new  compact,  compiled  language  for  micro- 
computers, has  many  of  the  best  features  of  BASIC 
and  the  8080  assembly  language— and  it  can  be  run 
on  any  of  the  8080  style  microprocessors:  8080,  Z-80, 
or  8085.  This  is  a  PAPERBYTE™  book. 

Subroutines  in  the  BASEX  operating  system  typically 
execute  programs  up  to  five  times  faster  than  equiva- 
lent programs  in  a  BASIC  interpreter— while  requiring 
about  half  the  memory  space.  In  addition,  BASEX  has 
most  of  the  powerful  features  of  good  BASIC  inter- 
preters including  array  variables,  text  strings,  arithme- 
tic operations  on  signed  16  bit  integers,  and  versatile 
10  communication  functions.  And  since  the  two  lan- 
guages, BASEX  and  BASIC,  are  so  similar,  it  is  possible 
to  easily  translate  programs  using  integer  arithmetic 
data  from  BASIC  into  BASEX. 
The  author,  Paul  Warme,  has  also  included  a  BASEX 
Loader  program  which  is  capable  of  relocating  pro- 
grams anywhere  in  memory. 


^s^ 


ISBN  0-931718-05-8 
Author:  Paul  Warme 
Pages:  88 
Price:  $8.00 


PROGRAMMING  TECH- 
NIQCJES  is  a  series  of  BYTE 
BOOKS  concerned  with  the 
art  and  science  of  computer 
programming.  It  is  a  collection 
of  the  best  articles  from  BYTE 
magazine  and  new  material 
collected  just  for  this  series. 
Each  volume  of  the  series 
provides  the  personal  com- 
puter user  with  background 
information  to  write  and  main- 
tain programs  effectively. 

The  first  volume  in  the  Programming  Techniques 
series  is  entitled  PROGRAM  DESIGN.  It  discusses 
in  detail  the  theory  of  program  design.  The  purpose 
of  the  book  is  to  provide  the  personal  computer  user 
with  the  techniques  needed  to  design  efficient  effec- 
tive, maintainable  programs.  Included  is  information 
concerning  structured  program  design,  modular  pro- 
gramming techniques,  program  logic  design,  and 
examples  of  some  of  the  more  common  traps  the 
casual  as  well  as  the  experienced  programmer  may 
fall  into.  In  addition,  details  on  various  aspects  of  the 
actual  program  functions,  such  as  hashed  tables  and 
binary  tree  processing,  are  included. 


ISBN  0-931718-12-0 
Editor:  Blaise  W.  LIffick 
Pages:  96 
Price:  $6.00 


SIMULATION  is  the  second  volume  in  the  Program- 
ming Techniques  series.  The  chapters  deal  with 
various  aspects  of  specific  types  of  simulation.  Both 
theoretical  and  practical  applications  are  included. 
Particularly  stressed  is  simulation  of  motion,  including 
wave  motion  and  flying  objects.  The  realm  of  artificial 
intelligence  is  explored,  along  with  simulating  robot 
motion  with  the  microcomputer.  Finally,  tips  on  how 
to  simulate  electronic  circuits  on  the  computer  are 
detailed. 

ISBN  0-931718-13-9 
Editor:  Blaise  W.  Liffick 
Pages:  approx.  80 
Price:  $6.00 
Publication:  Winter  1979 


RA6800ML:  AN  M6800  RELOCATABLE  MACRO 
ASSEMBLER  is  a  two  pass  assembler  for  the  Motorola 
6800  microprocessor.  It  is  designed  to  run  on  a  mini- 
mum system  of  16  K  bytes  of  memory,  a  system 
console  (such  as  a  Teletype  terminal),  a  system  monitor 
(such  as  Motorola  MIKBGG  read  only  memory  pro- 
gram or  the  ICOM  Floppy  Disk  Operating  System), 
and  some  form  of  mass  file  storage  (dual  cassette 
recorders  or  a  floppy  disk). 

The  Assembler  can  produce  a  program  listing,  a  sorted 
Symbol  Table  listing  and  relocatable  object  code.  The 
object  code  is  loaded  and  linked  with  other  assembled  ' 
modules  using  the  Linking  Loader  LINK68.  (Refer  to 
PAPERBYTE™  publication  LINK68:  AN  M6800 
LINKING  LOADER  for  details.) 

There  is  a  complete  description  of  the  6800  Assembly 
language  and  its  components,  including  outlines  of 
the  instruction  and  address  formats,  pseudo  instruc- 
tions and  macro  facilities.  Each  major  routine  of  the 
Assembler  is  described  in  detail,  complete  with  flow 
charts  and  a  cross  reference  showing  all  calling  and 
called-by  routines,  pointers,  flags,  and  temporary 
variables. 

In  addition,  details  on  interfacing  and  using  the 
Assembler,  error  messages  generated  by  the  Assem- 
bler, the  Assembler  and  sample  lO  driver  source  code 
listings,  and  PAPERBYTE"'''^  bar  code  representation 
of  the  Assembler's  relocatable  object  file  are  all  included. 

This  book  provides  the  necessary  background  for 
coding  programs  in  the  6800  assembly  language,  and 
for  understanding  the  innermost  operations  of  the 
Assembler. 

ISBN  0-931718-10-4 
Author:  Jack  E.  Hemenway 
Pages:  184 
Price:  $25.00 


to  order  books  see  next  page 


LINK68:  AN  MGSOO  LINKING  LOADER  is  a  one 

pass  linking  loader  which  allows  separately  translated 
relocatable  object  modules  to  be  loaded  and  linked 
together  to  form  a  single  executable  load  module,  and 
to  relocate  modules  in  memory.  It  produces  a  load  map 
and  a  load  module  inMotorola  MIKBGG  loaderformat. 
The  Linking  Loader  requires  2  K  bytes  of  memory,  a 
system  console  (such  as  a  Teletype  terminal),  a  sys- 
tem monitor  (for  instance.  Motorola  MIKBGG  read 
only  memory  program  or  the  ICOM  Floppy  Disk 
Operating  System),  and  some  form  of  mass  file  stor- 
age (dual  cassette  recorders  or  a  floppy  disk). 

It  was  the  express  purpose  of  the  authors  of  this 
book  to  provide  everything  necessary  for  the  user 
to  easily  learn  about  the  system.  In  addition  to  the 
source  code  and  PAPERBYTE^'^  bar  code  listings, 
there  is  a  detailed  description  of  the  major  routines  of 
the  Linking  Loader,  including  flow  charts.  While  imple- 
menting the  system,  the  user  has  an  opportunity  to 
learn  about  the  nature  of  linking  loader  design  as  well 
as  simply  acquiring  a  useful  software  tool. 

ISBN  0-931718-09-0 
Authors:  Robert  D.  Grappel 
&  Jack  E,  Hemenway 
Pages:  72 
Price:  $8.00 
Winter  1979 

TRACER:  A  6800  DEBGGGING  PROGRAM  is  for 

the  programmer  looking  for  good  debugging  software. 
TRACER  features  single  step  execution  using  dynamic 
break  points,  register  examination  and  modification, 
and  memory  examination  and  modification.  This  book 
includes  a  reprint  of  "Jack  and  the  Machine  Debug" 
(from  the  December  1977  issue  of  BYTE  magazine), 
TRACER  program  notes,  complete  assembly  and 
source  listing  in  6800  assembly  language,  object 
program  listing,  and  machine  readable  PAPERBYTE^'^ 
bar  codes  of  the  object  code. 

ISBN  0-931718-02-3 
Authors:  Robert  D.  Grappel 
&  Jack  E,  Hemenway 
Pages:  24 
Price:  $6.00 


MONDEB:  AN  ADVANCED  M6800  MONITOR- 
DEBOGGER  has  all  the  general  features  of  Motorola's 
MIKBGG  monitor  as  well  as  numerous  other  capabili- 
ties. Ease  of  use  was  a  prime  design  consideration. 
The  other  goal  was  to  achieve  minimum  memory 
requirements  while  retaining  maximum  versatility. 
The  result  is  an  extremely  versatile  program.  The  size 
of  the  entire  MONDEB  is  less  than  3  K. 

Some  of  the  command  capabilities  of  MONDEB  in- 
clude displaying  and  setting  the  contents  of  registers, 
setting  interrupts  for  debugging,  testing  a  program- 
mable memory  range  for  bad  memory  locations, 
changing  the  display  and  input  base  of  numbers, 
displaying  the  contents  of  memory,  searching  for  a 
specified  string,  copying  a  range  of  bytes  from  one 
location  in  memory  to  another,  and  defining  the  loca- 
tion to  which  control  will  transfer  upon  receipt  of  an 
interrupt  This  is  a  PAPERBYTE™  book. 

ISBN  0-931718-06-6 
Author:  Don  Peters 
Pages:  88 
Price:  $5.00 


BAR  CODE  LOADER.  The  purpose  of  this  pamphlet 
is  to  present  the  decoding  algorithm  which  was  de- 
signed by  Ken  Budnick  of  Micro-Scan  Associates  at 
the  request  of  BYTE  Publications,  Inc.,  for  the  PAPER- 
BYTE^'^  bar  code  representation  of  executable  code. 
The  text  of  this  pamphlet  was  written  by  Ken,  and 
contains  the  general  algorithm  description  in  flow 
chart  form  plus  detailed  assemblies  of  program  code 
for  6800,  6502  and  8080  processors.  Individuals  with 
computers  based  on  these  processors  can  use  the 
software  directly.  I  ndividuals  with  other  processors  can 
use  the  provided  functional  specifications  and  detail 
examples  to  create  equivalent  programs. 

ISBN  0-931718-01-5 
Author:  Ken  Budnick 
Pages:  32 
Price:  $2.00 


BYTE  BOOKS  Division  •   70  Main  Street  •  Peterborough,  New  Hampshire  03458 


Please  send  the  books  I  have  checked. 

□  Computer  Music  $10.00 
D  SOPERWOMPOS  $6.00 

□  Tiny  Assembler  (3.1)  $9.00 
D  Circuit  Cellar  $8.00 

□  BASEX$8.00 

□  Program  Design  $6.00 
D  Check  enclosed 


Card  No. 


D  Simulation  $6.00 
nRA6800ML$  25.00 
nLink68$8.00 
D  TRACER  $6.00 
nMondeb$5.00 
n  Bar  Code  Loader  $2.00 
D  Bill  Visa  □  Bill  Master  Charge 
Exp.  Date 


Total  Books 
Add  60c  per  book 
Postage/Handling 

Grand  Total 


Company 


City 


State/Province 


Code 


I 
I 

J 


BYTi;  August  1979 


Circle  36  on  inquiry  card. 


IIIIIIIIIIIIHIHIHinillllllllNIMNinilllllllllllllllllNIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIHIIIIIIIIIirilllinillllllllllllllllllllllHIilllllllHIIIIIIIIIIIIIIIIIIMH 

BYTE  News  .... 

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiriiiiii I iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiNiiiiiiiiuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 

BUBBLE  MEMORY  ARRIVES  FOR  PERSONAL  COMPUTERS.  Rockwell  International  has  introduced  a 
bubble  memory  board  for  a  personal  computer  system.  The  board  contains  128  K  bytes  of  storage  and 
plugs  directly  into  the  expansion  bus  for  the  AIM-6502  processor  (which  is  the  same  as  the  KIM-1 
bus).  Rockwell  also  supplies  a  controller  card  which  allows  the  bubble  memory  to  function  as  a  floppy 
disk  replacement.  The  controller  will  control  up  to  16  memory  boards  for  a  total  of  2  M  bytes  of  bub- 
ble memory.  However,  before  you  rush  out  to  buy  it,  be  aware  that  each  bubble  memory  board  costs 
$2500  and  the  controller  board  costs  $1000. 

Intel  and  National  will  also  soon  become  manufacturers  of  bubble  memory.  Texas  Instruments  and 
Rockwell  are  currently  supplying  bubble  memories.  Texas  Instruments  and  Rockwell  devices  contain 
256  K  bits.  The  Intel  device,  which  will  be  in  volume  production  in  early  1980,  will  contain  1  M  bits, 
while  the  National  device  will  contain  256  K  bits.  Texas  Instruments  and  Rockwell  have  been  produc- 
ing limited  quantities  of  the  bubble  memory  devices  and  they  do  not  expect  to  begin  volume  produc- 
tion until  1980.  Furthermore,  one  Japanese  manufacturer,  Fujitsu,  appears  to  be  near  bubble  memory 
introduction. 

MORE  LARGE  COMPANIES  RUMORED  ABOUT  TO  ENTER  PERSONAL  COMPUTER  MARKET. 
Rumors  continue  that  RCA,  Hewlett-Packard  and  Zenith  are  seriously  considering  entering  the  per- 
sonal computer  market.  Each  is  known  to  have  a  personal  computer  system  development  project  in 
progress.  Other  companies  seriously  investigating  the  market  include  IBM  and  Bell  Labs,  each  of 
which  is  known  to  have  personal  computer  projects  at  the  research  facilities. 

Several  Japanese  companies  also  introduced  personal  computer  systems  at  the  June  NCC  show  in 
New  York,  Matsushita  introduced  its  JD-700  to  sell  for  $5,000  to  $6,000.  It  has  a  2  K  byte  read  only 
memory,  two  minifloppies,  and  a  printer,  and  it  uses  Extended  BASIC.  Sord  introduced  the  M200 
($6,000  to  $7,000),  which  uses  a  Z-80  with  64  K  memory,  up  to  four  minifloppy  drives,  and  BASIC, 
FORTRAN,  or  COBOL.  Ai  Electronics  showed  its  APC-2G  ($7,500)  which  is  Z-80  based,  has  two  5 
inch  drives  and  hardware  arithmetic,  and  has  software  options  which  include  FORTRAN,  BASIC, 
COBOL,  PL/3  and  CP/M. 

DIGITIZED  HI-FI  ON  THE  HORIZON.  An  industry  group  called  the  "Digital  Audio  Disk  Council"  was 
formed  in  late  1978  to  establish  guidelines  and  standards  for  pulse  code  modulation  (PCM)  recor- 
dings. The  council  includes  35  companies  and  is  an  international  group.  The  standard  is  expected  to 
be  adopted  in  one  to  two  years. 

It  is  expected  that  pulse  code  modulation  recordings  will  be  the  next  generation  of  super  hi-fi  disks. 
The  technique  provides  wider  frequency  response  and  greater  dynamic  range,  and  virtually 
eliminates  distortion  and  noise.  The  record  will  also  include  an  address  code  for  random  access  of 
selections.  Applications  to  published  software  products  may  well  impact  the  small  computer  field. 

INTEL  RETIRES  THE  1103.  Intel  has  finally  retired  the  1103  dynamic  memory  which  houses  1  K  bits. 
This  was  Intel's  first  successful  MOS  memory  product  and  it  was  a  pioneer  in  the  field  of  IC-MOS 
memories.  Intel  has  made  35  million  of  these  units  since  its  introduction  in  1971. 

TI  INTRODUCES  SPEAKING  TRANSLATOR.  At  the  June  Consumer  Electronics  show,  Texas  Instru- 
ments introduced  a  hand-held  language  translator  which  displays  and  speaks  the  translated  words 
through  the  use  of  a  speech  synthesizer  circuit.  This  is  a  significant  advance  over  the  Craig  and 
Lexicon  units  introduced  six  months  earlier,  which  only  display  translated  words.  The  unit  will  cost 
$250,  plus  $50  for  plug-in  language  modules.  English,  Spanish,  French  and  German  modules  will  be 
available,  with  Russian,  Japanese  and  Chinese  to  follow  later.  The  unit  displays  1000  words,  500  of 
which  can  be  spoken.  Craig  has  also  increased  their  module  vocabularies  to  2,400  words. 

UPI  NEWS  WIRE  NOW  AVAILABLE  TO  PERSONAL  COMPUTER  USERS.  United  Press  International 
(UPI),  one  of  the  prime  sources  of  news  used  by  newspapers  throughout  the  country,  has  made  their 
service  accessible  to  personal  computer  users.  The  UPI  wire  can  be  dialed  as  a  local  number  in  most 
US  cities.  UPI  will  charge  $15  per  hour  during  business  hours,  and  $2.75  during  other  times. 

IBM  DEVELOPS  ULTRA-HIGH  SPEED  LOGIC.  The  IBM  Research  Center  at  Yorktown  Heights  NY 
has  disclosed  their  development  of  logic  circuits  with  switching  speeds  of  13  picoseconds.  Based  on 

AugusI  1979  ©  BYTE  Publications  Inc        89 


Josephson  junction  technology,  the  devices  are  still  in  an  experimental  form.  The  new  circuits  are 
called  "Current  Injection  Logic"  and  they  generate  thousands  of  times  less  heat  than  previous  types  of 
logic.  As  a  result,  higher  circuit  densities  will  be  possible. 

MINIATURE  FLOPPY  DISKS  IN  DEVELOPMENT.  At  present  we  have  8  inch  (20.3  cm)  and  5.25  inch 
(13.3  cm)  floppy  disks.  A  new,  smaller  disk  is  now  well  into  development  and  has  been  proposed  for 
international  standardization.  Commonly  referred  to  as  the  Eurodisk,  it  is  a  square  package  that 
measures  4.12  inches  (10.5  cm),  will  store  400  K  bytes,  use  50  tracks  per  side,  and  have  a  300  K  bps 
data  transfer  rate.  The  standard  5.25  inch  (13.3  cm)  floppy  disk  holds  125  K  bytes  on  40  tracks  and 
has  a  125  K  bps  data  transfer  rate  (double  these  figures  for  double  density).  Olivetti  is  also  expected 
to  announce  a  very  low  cost  2.55  inch  (6.5  cm)  disk  which  will  store  8  K  bytes.  It  will  take  several 
seconds  to  read  or  write,  there  is  no  provision  for  random  file  access,  it  will  be  thicker,  and  will  not 
use  a  jacket.  It  is  rumored  to  be  intended  for  use  in  a  personal  computer  that  is  now  nearing  introduc- 
tion. Rumors  also  continue  that  IBM  will  use  the  3.25  inch  (8.3  cm)  disks,  currently  used  in  their  dic- 
tating units,  in  some  of  their  low  end  computer  systems  such  as  the  5110. 

FLAT  DISPLAY  PANELS  SHOWN.  At  the  May  meeting  of  the  Society  for  Information  Display,  several 
Japanese  companies  demonstrated  prototype  flat  panel  displays  that  are  now  in  an  advanced  stage  of 
development.  Ise  Electronics  showed  a  240  character  (40  characters  by  6  lines)  vacuum-fluorescent 
display  that  was  250  mm  wide  by  100  mm  high  and  14.5  mm  thick.  It  operated  off  of  low  voltage  and 
was  low  power.  Hitachi  exhibited  an  80  character  LCD  panel  which  was  280  mm  by 
50  mm  by  23  mm,  and  operated  from  5  VDC  and  dissipated  only  100  mw.  NEC  showed  a  storage  type 
LCD  panel  of  120  characters,  and  Fujitsu  demonstrated  a  1560  character  plasma  display  panel. 

VIEWDATA  AND  TELETEXT  NEWS.  Both  the  Viewdata  and  Teletext  home  data-base  access  systems 
will  be  introduced  to  the  US  market  by  the  mid  1980s.  Viewdata  is  a  system  that  connects  the  home  to 
a  central  computer  via  telephone  lines.  The  user  can  call  up  data  to  appear  on  a  modified  television. 
General  Telephone  and  Electronics  presently  has  a  Viewdata  research  development  project.  Trial 
systems  are  already  in  operation  in  England  and  West  Germany. 

Teletext  transmits  data  on  a  television  signal,  fitting  the  data  into  the  blank  space  between  picture 
frames.  Micro-TV,  a  Philadelphia-based  company  has  been  doing  this  for  over  two  years,  while  KSL- 
TV,  Salt  Lake  City,  has  done  the  same  for  one  year.  Texas  Instruments  is  supplying  the  decoders  for 
the  KSL  test. 

The  Electronic  Industries  Association  is  currently  evaluating  Teletext.  Some  companies  believe  that 
by  the  late  1980s  the  home  system  will  include  Viewdata,  Teletext,  video  disk,  and  a  personal  com- 
puter system  to  control  them.  In  fact,  Apple  Computer  already  offers  a  service,  in  conjunction  with 
Dow  Jones  and  Co,  which  permits  Apple  owners  to  display  stock  market  information  by  dialing  a 
phone  number. 

Viewdata  and  Teletext  are  viewed  as  complementary  services  to  help  bring  advanced  household 
management,  home  environmental  control,  teaching,  and  entertainment  into  the  home.  Some  experts 
feel  that  it  will  be  realized  in  as  little  as  three  years. 

Oak  Industries  of  Crystal  Lake  IL  recently  demonstrated  their  Teletext  system.  Called  "Videotext," 
it  allows  cable  television  operators  to  pipe  data  to  subscribers  via  a  microprocessor-based  decoder. 
Each  decoder  has  its  own  address  which  allows  the  cable  company  to  monitor  all  units.  This  means 
that  they  will  know  immediately  if  a  set  is  stolen.  The  cable  company  will  also  be  able  to  cut  off  non- 
paying  subscribers,  thereby  rendering  stolen  units  useless. 

A  Miami-based  company,  Knight-Ridder  Newspapers  Inc,  has  formed  a  subsidiary  named  Viewdata 
Corporation  of  America,  which  will  undertake  a  two  year,  $1.3M  test.  The  Hong-Kong  Telephone 
Company  also  expects  to  implement  a  Viewdata  system  next  year. 

The  Canadian  government  and  telephone  companies  are  currently  testing  systems  which  transmit 
data  over  both  telephone  lines  and  television  signals.  One  system,  constructed  by  Bell  Canada, 
presently  has  25  units  in  a  network,  linking  together  Toronto,  Montreal  and  Ottawa.  The  units  were 
built  by  Bell  Northern  Research.  Bell  Canada  expects  to  have  1,500  to  2,000  units  installed  in  homes 
next  year.  Several  others  are  conducting  tests. 

Sol  Libes 

AGGNJ 

1776  Raritan  Road 

Scotch  Plains  NI  07076 

MAIL:  I  receive  a  large  number  of  letters  each  month  as  a  result  o£  this  column.  li  you  wish  a 
response,  please  include  a  stamped,  self-addressed  envelope. 

90        August  1979  ©  BYTE  Publications  Inc 


Wordsmith  is  the  video  text  editing  system  you've  been 
waiting  for.  Its  power,  flexibility  and  simplicity  help  you  carve 
any  text  editing  task  down  to  size  — in  a  way  you  can 
understand.  We  wanted  a  system  that  allows  you  to  think  in 
traditional  ways  about  text  layout,  yet  at  the  same  time  makes 
the  traditionally  tedious  operations  such  as  cut  and  paste 
simple  and  fast.  We  think  we've  done  it.  We  want  you  to  decide 
for  yourself  ^^^^^^^^^^^^^^^^^^^^^m^^^^^^^ 


Flexibility 

Logical/ Physical  Page  Distinction.  Define  your  own 
hardcopy  size.  Wordsmith  remembers  the  difference 
between  the  screen  size  and  the  hardcopy  page  size. 

Modular  Hardcopy  Driver.  Drive  a  QumeiS'  Sprint-5  or 
TTY-like  device  directly  now,  Diablo.  NEC  and  other 
hardcopy  devices  soon. 

Pure  Text.  Wordsmith  files  are  pure  text  with  no  control 
characters  mixed  in.  This  universal  format  keeps  you  as 
compatible  with  the  world  as  possible.  What  you  see  on  the 
screen  is  what  you  get  as  hardcopy. 

Page  Templates.  Snapshots  of  the  block  layout  of  a  page 
can  be  saved  as  named  disk  files,  then  later  recalled  and 
superimposed  on  the  current  page.  Use  such  "templates" 
for  standard  multicolumn  layouts,  common  letter  formats, 
and  fixed-field  forms.  A  single  keystroke  dispatches  you 
quickly  from  block  to  block  as  you  fill  in  your  page. 


Take  a 

snapshot 

of  a 

page's 

windovw 

layout 


1 

1 

en 

File  Switching.  Moving  from  document  to  document  to 
examine,  copy,  move  and  change  text  is  like  rolling  off  a  log. 
You're  not  confined  to  one  disk  file  at  a  time  anymore,  ^m 


Power 

Page  Driented  Philosophy.  A  document  is  a  collection  of 
pages.  The  screen  displays  one  entire  page  at  a  time.  Simple 
random  access  page  flipping  commands  take  you  quickly  to 
any  page  in  the  document.  Equally  efficient  commands  allow 
you  to  insert,  delete,  copy  and  move  pages  both  within  one 
document  and  across  documents. 


'  Extensive  Block  Manipulation  Capabilities.  Using 
"windows",  portions  of  text,  charts,  etc.,  can  be  quickly  and 
effortlessly  moved  around  on  the  current  page,  or  across 
pages.  The  shape  and  size  of  any  window  can  be  changed  in 
real  time,  with  the  contained  text  automatically 
reformatting  itself  (heeding  word  and  paragraph 
boundaries)  to  conform  to  the  new  shape. 


Move 
Text  Blocks 


Set  Up 

Multiple  Text 

Regions 


Change  Text  Shape 


Instantaneous  Formatting.  Compacting  (extraneous 
blank  deletion)  and  right  justifying  are  simple  commands 
that  tidy  up  a  full  page  or  window's  worth  of  text  in  the  blink 
of  an  eye.  Random  access  cursor  movement,  line  and 
character  insert  and  delete,  line  and  page  split  and  join,  and 
a  host  of  other  line  and  character  level  commands  help  you 
put  text  in  its  place  quickly  and  accurately. 


Simplicity 

Auto  Word  Break.  Forget  the  right  margin.  Wordsmith 
notices  when  you  won't  be  able  to  complete  the  current 
word  and  moves  it  to  the  next  line  for  you  as  you  continue 
typing. 

Understandable  Commands.  The  most  frequently  used 
commands  are  single  keystrokes.  The  rest  are  easily 
remembered  abbreviations. 

Informative  Status  Lines.  The  top  two  screen  lines 
constantly  display  page  number  information,  document 
name,  cursor  position,  tab  stops  and  status/error 
phrases.  You're  always  in  touch  with  your  document. 


Page  3  of  B 

File=ADV1 

Cursor  row  28,  col  43 

1            1 

\ 

f                       1 

Protection  Against  Catastrophic  Errors.  It's  nearly 
impossible  to  ruin  your  document  with  a  single  bad 
command.  Wordsmith's  page  oriented  design  and  double- 
checking  user  interface  help  you  do  what  you  mean! 


The  ,^ 

TEXT  EDITOR 

Defining  the  New  Generation  of  Text  Editing 

from  Micro  Diversions,  Inc. 
B455-D  Tyco  Rd. 
Vienna,  Ua.  22180 
(703)  827-0888 


Direct  CP/M®  and  North  Star  DOS  compatibility 

Available  for  40x86,  24x80  and  16x64  memory-mapped 
video  boards 

Fully  reentrant  for  efficient  multi-programming  environ- 
ments (6K  program  space,  5K  data  area) 
8080  and  Z80  compatibility 


Ordering 
Information: 

S2ao 

(Screensplitter""  Owners 

Manual  only:  SI  5 

Check,  VISA.  Mastercharge 


S801 


1.  CP/M  or  North  Star  DOS 
version? 

2.  TTY  or  QUME  interface? 

3.  Brand  and  memory  address  of 
video  display  board? 

4.  Ship  on  single  or  double 
density.  5"  or  8"  diskette? 


Inquire  about  our  custom  keyboard. 


Circle  219  on  inquiry  card. 


BYTE  Augusl  1979         91 


Aw,  cut  it  out! 

Save  these  pages    It's  our  latest,  up-to-the-minute  list  of  super  software. 

r 


Heffective 


Software   / 

with  /Manual 
Manual/  Alone 

DIGITAL  RESEARCH 

D  CP/M*  FDOS  —  Diskette  Operating  .System  complete  with 
Text  Editor,  Assembler,  Debugger,  File  Manager  and  system 
utilities.  Available  for  wide  variety  of  disk  systems  including 
North  Star,  Helios  II,  l\/licropolis,  iCOM  (all  systems)  and  Altair. 
Supports  computers  such  as  Sorcerer,  Horizon,  Sol  System  III, 
Versatile.  Altair  8800,  COMPAL-80,  DYNABYTE  DB8/2,  and 
iCOM  Attache.  Specify  desired  configuration    $145/$25 

D  MAC  —  8080  Itflacro  Assembler.  Full  Intel  macro  definitions. 
Pseudo  Ops  include  RPC,  IRP,  REPT,  TITLE,  PAGE,  and 
MACLIB.  Z-80  library  included.  Produces  Intel  absolute  hex 
output  plus  symbols  file  for  use  by  SID  (see  below)  $100/$15 

n  SID  —  8080  symbolic  debugger.  Full  trace,  pass  count  and 
break-point  program  testing  system  with  back-trace  and  histo- 
gram utilities.  When  used  with  IVIAC,  provides  full  symbolic 
display  of  memory  labels  and  equated  values  $85/$15 

n  TEX  —  Text  formatter  to  create  paginated,  page-numbered 
and  justified  copy  from  source  text  files,  directable  to  disk  or 
printer    $85/$15 

n  DESPOOL  —  Program  to  permit  simultaneous  printing  of 
data  from  disk  while  user  executes  another  program  from  the 
console  $50/$1 

MICROSOFT 

D  Disk  Extended  BASIC  —  Version  5,  ANSI  compatible  with 
long  variable  names,  WHILEWEND,  chaining,  variable  length 
file  records  $300/$25 

D  BASIC  Compiler  —  Language  compatible  with  Version  5 
Ivlicrosoft  interpreter  and  3-10  times  faster  execution.  Pro- 
duces standard  Ivlicrosbft  relocatable  binary  output.  Includes   ^      ,, 
Macro-80.  Also  linkable  to  FORTRAN-80  or  COBOL-80  code  /       ^>rij 
modules    $350/$2S  (         ^y^.  "Vg 

D  FORTRAN-80  —  ANSI  '66  (except  for  COMPLEX)  plus  ^Co^^^^^^ 
many  extensions.  Includes  relocatable  object  compiler,  linking  ^  '^/^  ® 
loader,  library  with  manager.  Also  includes  MACRO-80  (see  ,  V~^-^'' 
below)   $400/$25  .^ 

n  COBOL-80  —  ANSI  74  Relocatable  object  output.  Format 

same  as  FORTRAN-80  and  MACRO-80  modules.  Complete 

ISAM,   interactive  ACCEPT/DISPLAY,   COPY,   EXTEND 

$625/$25 

D  MACRO-80  —  8080/Z80  Macro  Assembler.  Intel  and  Zilog 

mnemonics  supported.  Relocatable  linkable  output.  Loader, 

Library  Manager  and  Cross  Reference  List  utilities  included 

$149/$15 

D  EDIT-80  —  Very  fast  random  access  text  editor  for  text  with  or 
without  line  numbers.  Global  and  intra-line  commands  sup- 
ported.  File  compare  utility  included    $89/$1 5  x        f^*     » 

XITAN  (software  requires  Z80"  CPU)  (      ^^oes  a^^v 

D  Z-TEL  —  Text  editing  language.  Expression  evaluation  itera-  ^-^'    i 
tion  and  conditional  branching  ability.  Registers  available  for  ^ 

text  and  commands.  Macro  command  strings  can  be  saved  on  c 

disk  for  re-use    $69/$20 

n  ASM  Macro  Assembler  —  Mnemonics  per  Intel  with  Z-80  ex- 
tensions. Macro  capabilities  with  absolute  Intel  hex  or  relocat- 
able linkable  output  modules.  New  version  3  with  added 
features   $69/$20 

n  LINKER  —  Link-edits  and  loads  ASM  modules    . ,  .$69/$20 

D  Z-BUG  debugger  —  Trace,  break-point  tester.  Supports  dec- 
imal, octal  and  hex  modes.  Dissassembler  to  ASM  mnemonic 
set.  Emulation  technique  permits  full  tracing  and  break-point 
support  through  ROM   $89/$20 

D  TOP  Text  Output  Processor  —  Creates  page-numbered,  jus- 
tified documents  from  source  text  files    $69/$20 


•CP/M  is  a  trade  name  ol  Digilal  Research 
"•Z80  is  a  trademark  of  Zllog,  Inc. 
■"Good  until  August  31.  1979 


Software   / 
'  witfi  /Manual 

Manual/  Alone 

n  A4  package  includes  Z-TEL,  ASM,  LINKER,  Z-BUG,  TOP 
$299/840 

EIDOS  SYSTEMS 

n  KISS  —  Keyed  Index  Sequential  Search.  Offers  complete 
Multi-Keyed  Index  Sequential  and  Direct  Access  file  manage- 
ment. Includes  built-in  utility  functions  for  16  or  32  bit  arithme- 
tic, string/integer  conversion  and  string  compare.  Delivered  as 
a  relocatable  linkable  module  in  Microsoft  format  for  use  with 
FORTRAN-80  or  COBOL-80,  etc $535/$23 

D  K  BASIC  —  Microsoft  Disk  Extended  BASIC  with  all  KISS 
facilities,  integrated  by  implementation  of  nine  additional  com- 
mands in  language.  Package  includes  KISS.REL  as  described 
above,  and  a  sample  mail  list  program  $995/$45 

MICROPRO 

D  Super-Sort  I  —  Sort,  merge,  extract  utility  as  absolute 
executable  program  or  linkable  module  in  Microsoft  format. 
Sorts  fixed  or  variable  records  with  data  in  binary.  BCD, 
Packed  Decimal,  EBCDIC,  ASCII,  floating,  fixed  point,  expo- 
nential, field  justified,  etc.  etc.  Even  variable  number  of  fields 
per  record!    $250/$25 

n  Super-Sort  II  —  Above  available  as  absolute  program  only 
$200/S25 

D  Super-Sort  III  —  As  II  without  SELECT/EXCLUDE 

$1 50/$25 

□  Word-Master  Text  Editor  —  In  one  mode  has  super-set  of 
CP/M's  ED  commands  including  global  searching  and  replac- 
ing, forward  and  backwards  in  file.  In  video  mode,  provides  full 
screen  editor  for  users  with  serial  addressable-cursor  terminal 
$150/$25 

n  Word-Star  —  Menu  driven  visual  word  processing  sys- 
tem for  use  with  standard  terminals.  Text  formatting  performed 
on  screen.  Facilities  for  text  paginate,  page  number,  justify, 
center,  underscore  and  PRINT.  Edit  facilities  include  global 
search  and  replace,  read/write  to  other  text  files,  block  move, 
etc.  Requires  CRT  terminal  with  addressable  cursor  position- 
ing. Word-Master  users  may  upgrade  for  $395"! .  .$495/$25 

SOFTWARE  SYSTEMS 

D  CBASIC-2  Disk  Extended  BASIC  —  Non-interactive  BASIC 
with  pseudo-code  compiler  and  runtime  interpreter.  Supports 
full  file  control,  chaining,  integer  and  extended  precision  var- 
iables etc S90/S1 5 

STRUCTURED  SYSTEMS  GROUP 

D  General  Ledger  —  interactive  and  flexible  system  providing 
proof  and  report  outputs.  Customization  of  COA  created  inter- 
actively. Multiple  branch  accounting  centers.  Extensive  check- 
ing performed  at  data  entry  for  proof,  COA  correctness  etc. 
Journal  entries  may  be  batched  prior  to  posting.  Closing  pro- 
cedure automatically  backs  up  input  files.  All  reports  can  be 
tailored  as  necessary.  Requires  CBASIC $899/$25 

n  Accounts  Receivable  —  Open  item  system  with  output  for 
internal  aged  reports  and  customer-oriented  statement  and  bill- 
ing purposes.  On-Line  Enquiry  permits  information  for  Cus- 
tomer Service  and  Credit  departments.  Interface  to  General 
Ledger  provided  if  both  systems  used.  Requires  CBASIC 
$699/$25 

D  Accounts  Payable  —  Provides  aged  statements  of  ac- 
counts by  vendor  with  check  writing  for  selected  invoices.  Can 
be  used  alone  or  with  General  Ledger  and/or  with  NAD.  Re- 
quires CBASIC $699/$25 

n  NAD  Name  and  Address  selection  system  —  interactive  mail 
list  creation  and  maintenance  program  with  output  as  full  re- 
ports with  reference  data  or  restricted  infonnation  for  mail 
labels.  Transfer  system  for  extraction  and  transfer  of  selected 
records  to  create  new  files.  Requires  CBASIC    $79/$20 


EFFECTIVE  JUNE  19,  1979 


92       BYTE  August  1979 


Software  for  most  popular  8080/Z80  computer  disk  systems  including 
NORTH  STAR,  MICROPOLIS,  iCOM,  SD  SYSTEMS,  DYNABYTE  DB8I2, 
ALTAIR,  EXIDY  SORCERER,  VECTOR  MZ,  8"  IBM,  HEATH  H17  &  H89, 
HELIOS,  IMSAI  VDP42  &  44,  REX  and  OHIO  SCIENTIFIC  formats 


Software 

with 

Manual 


Manual 
Alone 


D  QSORT  —  Fast  sort/merge  program  for  files  with  fixed  record 
length,  variable  field  length  information.  Up  to  five  ascending  or 
descending  l<eys.  Full  bacl<-up  of  input  flies  created.  Parameter 
file  created,  optionally  with  interactive  program  which  requires 
CBASIC,  Parameter  file  may  be  generated  with  CP/M  assem- 
bler utility  $95/$20 

GRAHAM-DORIAN  SOFTWARE  SYSTEMS 

n  PAYROLL  SYSTEM  —  fvlaintains  employee  master  file. 
Computes  payroll  withholding  for  PICA,  Federal  and  State 
taxes.  Prints  payroll  register,  checks,  quarterly  reports  and  W-2 
forms.  Can  generate  ad  hoc  reports  and  employee  form  letters 
with  mail  labels.  Requires  CBASIC.  Supplied  in  source  code. 
$590/$35 

n  APARTMENT  MANAGEMENT  SYSTEM  -  Financial 
management  system  for  receipts  and  security  deposits  of 
apartment  projects.  Captures  data  on  vacancies,  revenues, 
etc.  for  annual  trend  analysis.  Daily  report  shows  late  rents, 
vacancy  notices,  vacancies,  income  lost  through  vacancies, 
etc.  Requires  CBASIC.  Supplied  in  source  code.  .  .$590/$35 

D  INVENTORY  SYSTEM  —  Captures  stock  levels,  costs, 
sources,  sales,  ages,  turnover,  markup,  etc.  Transaction  in- 
formation may  be  entered  for  reporting  by  salesman,  type  of 
sale,  date  of  sale,  etc.  Reports  available  both  for  accounting 
and  decision  making.  Requires  CBASIC.  Supplied  in  source 
code S590/$35 

D  CASH  REGISTER  —  I\/laintains  files  on  daily  sales.  Files 
data  by  sales  person  and  item.  Tracks  sales,  overrings,  re- 
funds, payouts  and  total  net  deposits.  Requires  CBASIC. 
Supplied  in  source  code    S590/$35 

MICRO  FOCUS 

D  CIS  COBOL  —  Version  3  is  ANSI  74  subset  with  extensions 
which  offer  powerful  interactive  screen  formatting  and  built  in 
cursor  control.  Version  4  additionally  offers  full  level  1  ANSI  for 
Nucleus,  Table  Handling,  Sequential  Relative  and  Indexed  I/O, 
Inter-Program  Communication  and  Library 

Version  3,  $650/$50 

Version  4,  $850/$50 

n  FORMS  —  Interactive  utility  to  create  CIS  COBOL  source 
code  to  perform  CRT  screen  handling  in  application  programs. 
Supports  full  prompt  text,  protected  fields  and  input  validation 

against  data  type  and  range  expected   $1  S0/$1 5 

When  purchased  with  CIS  COBOL  $1 25/$1 5 

OTHER 

n  tiny  C  —  Interactive  interpretive  system  for  teaching  struc- 
tured programming  techniques.  Manual  includes  full  source 
listings    $75/$40 

D  C  Compiler  —  Supports  most  major  features  or  language,  in- 
cluding Structures,  Arrays,  Pointers,  recursive  function  evalu- 
ation, linkable  with  library  to  8080  binary  output.  Lacks  data 
Initialization,  long  &  float  type  and  static  &  register  class  speci- 
fiers. Documentation  includes  "C"  Programming  Language 
book  by  Kernighan  &  Ritchie    $110/$15 

D  Z80  Development  Package  —  Consists  of;  (1)  disk  file 
line  editor,  with  global  inter  and  intra-line  facilities;  (2)  Z80 
relocating  assembler,  Zilog/lvlostek  mnemonics,  conditional 
assembly  and  cross  reference  table  capabilities;  (3)  linking 
loader  producing  absolute  Intel  hex  disk  file  for  CP/M  LOAD, 
DDT  or  SID  facilities $95/S20 

D  DISTEL  —  Disk  based  disassembler  to  Intel  8080  or  TDU 
Xitan  Z80  source  code,  listing  and  cross  reference  files.  Intel  or 
TDL/Xitan  pseudo  ops  optional.  Runs  on  8080.  Standard  CP/M 
and  TRS-80  CP/M  versions  available    $65/$10 

D  DISILOG  —  As  DISTEL  to  Zilog/Mostek  mnemonic  files. 
Runs  on  Z80  only $6S/$10 


Software 

witfi  /  Manual 
Manual/  Alone 

D  TEXTWRITER  II  —  Text  formatter  to  justify  and  paginate 
letters  and  other  documents.  Special  features  include  insertion 
of  text  during  execution  from  other  disk  files  or  console,  permit- 
ting recipe  documents  to  be  created  from  linked  fragments  on 
other  files.  Ideal  for  contracts,  manuals,  etc $75/$5 

n  WHATSIT?  —  Interactive  data-base  system  using  associa- 
tive tags  to  retrieve  information  by  subject.  Hashing  and  ran- 
dom access  used  for  fast  response.   Requires  CBASIC 
$125/$25 

D  XYBASIC  Interactive  Process  Control  BASIC  —  Full  disk 
BASIC  features  plus  unique  commands  to  handle  bytes,  rotate 
and  shift,  and  to  test  and  set  bits.  Available  in  Integer,  Ex- 
tended and  ROI^able  versions. 

Integer  Disk  or  Integer  ROMable  $295/$25 

Extended  Disk  or  Extended  ROMable    $395/$25 

D  SMAL/80  Structured  Macro  Assembled  Language  —  Pack- 
age of  powerful  general  purpose  text  macro  processor  and 
SMAL  structured  language  compiler.  SMAL  is  an  assembler 
language  with  IF-THEN-ELSE,  LOOP-REPEAT-WHILE,  DO- 
END,  BEGIN-END  constructs   $75/$1 5 

□  Selector  II  —  Data  Base  Processor  to  create  and  maintain 
single  Key  data  bases.  Prints  formatted,  sorted  reports  with 
numerical  summaries.  Available  for  Microsoft  and  CBASIC 
(state  which).  Supplied  in  source  code  $195/$20 

n  Selector  III  —  Multi  (i.e.,  up  to  24)  Key  version  of  Selector  II. 
Comes  with  applications  programs  including  Sales  Activity,  In- 
ventory, Payables,  Receivables,  Check  Register,  Expenses, 
Appointments,  and  Client/Patient.  Requires  CBASIC  Supplied 

in  source  code  $295/$20 

Enhanced  version  for  CBASIC-2   $345/$20 

D  CPM/374X  Utility  Package  —  has  full  range  of  functions 
to  create  or  re-name  an  IBt^3741  volume,  display  directory 
information  and  edit  the  data  set  contents.  Provides  full  file 
transfer  facilities  between  3741  volume  data  sets  and  CP/M 
files    $195/$10 

n  Flippy  Disk  Kit  —  Template  and  Instructions  to  modify  sin- 
gle sided  5V4"  diskettes  for  use  of  second  side  in  singled  sided 
drives    $9,75 

n  BASIC  Comparison  —  A  comprehensive  features  and  per- 
formance analysis  of  five  8080  disk  BASIC  languages  — 
CBASIC,  BASIC-E,  XYBASIC,  Microsoft  Disk  Extended 
BASIC,  and  Xitan's  Disk  BASIC.  Itemizes  results  of  21  different 
benchmark  tests  for  speed  and  accuracy  and  lists  instructions 
and  features  of  each  BASIC (send  20(4  S.A.S.E.)  FREE 


Orders  must  specify  disk 
systems  and  formats: 
e.g.  North  Star  single  or 
double  density,  IBM  sin- 
gle or  2D/256.  Altair, 
Helios  II.  Micropolis  Mod 
I  or  II,  5'A"  soft  sector 
(Micro  iCOMISD  Sales! 
Dynabyte),  etc. 

Add  $1  litem  shipping  ($2 
min.).  Add  $1  additional 
for  UPS  C.O.D. 

Manual  cost  applicable 
against  price  of  subse- 
quent software  pur- 
chase. 

The  sale  of  each  pro- 
prietary software  pack- 
age conveys  a  license 
tor  use  on  one  system 
only. 


n 


TM 


Lifeboat  Associates,  2243  Broadway,  n.y.,  n.y.  10024  Teiex:  668-585  (212)  580-0082 

'"  The  Software  Supermarket  is  a  trademark  of  Ufeboat 


_J 


BYTE  August  1979         93 


The  Nature  of  Robots 

Part  3:  A  Closer  Look  at  Human  Behavior 


William  T  Powers 

1138  Whitfield  Rd 

Northbrook  IL  60062 


In  part  1  of  this  series,  I  demonstra- 
ted that  the  concept  of  behavior  is  not 
as  clear  as  certain  people  would  in- 
dicate. The  patterns  that  we  call 
behavior  result  from  the  convergence 
of  many  influences,  only  a  part  of 
which  can  be  attributed  to  the  organ- 
ism that  we  say  is  behaving.  Yet  the 
behaving  organism  varies  its  own 
actions  so  that  when  the  influence  of 
these  actions  is  added  to  all  that  is  un- 
predictable, the  result  is  recognizable 
as  patterns  of  behavior. 

In  part  2  we  observed  that  a  control 
system  controls  its  input,  not  its  out- 
put. It  acts  on  its  environment  to 
make  its  own  sensory  or  perceptual 
signal  match  a  reference  signal  re- 
ceived from  elsewhere,  and  to  auto- 
matically counteract  the  effects  of 
disturbances.  It  does  not  have  to 
sense  the  cause  of  the  disturbance:  it 
senses  the  quantity  it  is  controlling, 
and  reacts  to  deviations  of  that  quan- 
tity (or  the  signal  representing  it) 
from  a  reference  level  that  is  set  by 
the  reference  signal. 

The  reference  signal  acts  just  as  an 
intention  ought  to  act.  It  specifies 
some  state  of  affairs  that  is  to  be 
achieved,  and  serves  as  a  target  to- 
ward which  action  always  urges  the 
perception  of  the  controlled  variable. 
Under  normal  circumstances  the  con- 
trol system  can  make  its  perceptual 
signal  track  a  changing  reference  sig- 
nal, and  still  oppose  the  effects  of 
disturbances. 

There  are  two  main  rules  of  thumb: 


About  the  Author 

William  T  Powers  has  been  exploring  the 
meaning  of  control  theory  for  studies  of  human 
nature  since  1953.  He  spent  a  number  of  years 
(to  1960)  in  medical  physics,  and  then  another 
13  (to  1975)  as  Chief  Systems  Engineer  for  the 
Department  of  Astronomy  at  Northwestern 
University.  His  occupation  has  been  designing 
electronic,  optical,  and  mechanical  systems  for 
science. 


•  The  reference  signal  reaching  a 
good  control  system  controls  the 
perceptual  signal  in  that  system. 

•  The  actions  of  the  control  system 
vary  so  as  to  oppose  the  effects  of 
disturbances,  even  if  the  reference 
signal  remains  constant. 

Let's  see  how  this  control  system 
model  applies  to  one  small  human 
subsystem:  a  spinal  reflex  arc  (reflex 
just  means  "turned  back  on  itself"). 
This  will  lead  to  some  concepts  that 
will  be  of  use  to  the  designers  of 
robots. 

The  Tendon  Reflex 

In  the  early  19th  century.  Sir 
Charles  Bell  established  the  fact  that 
sensory  nerves  are  separate  from 
motor  nerves,  and  described  the  "cir- 
cle of  nerves"  found  in  a  spinal  reflex. 
A  sensory  nerve  that  is  part  of  a 
spinal  reflex  arc  (we  will  talk  about 
one  that  is  stimulated  by  the  stret- 
ching of  a  tendon)  sends  its  signal  to 
the  spinal  cord,  and  the  same  cell  that 
receives  this  signal  emits  a  motor 
signal  that  reaches  a  muscle.  When 
the  muscle  contracts,  it  has  physical 
effects  that  stimulate  the  same  sen- 
sory nerve.  These  are  closed  loops; 
the  effects  of  sensory  nerves  that  are 
stimulated  by  muscle  action  affect  the 
same  muscle  action. 

In  all  such  loops  that  have  been 
discovered,  the  sense  of  the  feedback 
is  negative.  This  is  true  of  the  tendon 
reflex.  If  signals  from  cells  in  the 
spinal  cord  cause  a  muscle  to  con- 
tract, the  resulting  stretch  of  the  ten- 
don stimulates  sensors  clustered 
around  the  tendon.  The  signals  from 
these  sensors  reach  the  same  cells  in 
the  spinal  cord  to  inhibit  their  firing. 

Apparently  the  materials  are  pre- 
sent for  a  control  system,  but  before 
we  discuss  this,  a  digression  is 
necessary. 


All  or  None  or  Some 

One  of  the  most  unfortunate  ac- 
cidents to  occur  in  neurology  was  the 
discovery  that  signals  in  nerves  are 
carried  by  impulses.  The  effect  was  as 
if  the  discoverers  of  electricity  had 
discovered  the  electron  before  they 
had  formulated  laws  of  current  flow, 
and  thus  developed  the  whole  theory 
of  electricity  on  the  basis  of  collisions 
between  one  electron  and  another 
electron.  As  soon  as  there  were  in- 
struments to  detect  nerve  signals  it 
was  known  that  the  amplitude  of  an 
impulse  generated  by  a  nerve  cell  was 
independent  of  the  source;  there  was 
a  trigger  effect,  so  that  either  an  im- 
pulse was  generated,  or  it  was  not. 

As  a  result,  almost  all  neurological 
research  has  focused  on  single  im- 
pulses. The  "all-or-none"  principle 
became  so  firmly  entrenched  that  by 
the  time  digital  computers  arrived  on 
the  scene,  most  people  were  led  off 
the  track.  "Aha,"  they  said,  "if  a 
nerve-cell  has  a  threshold  that  is  just 
high  enough,  2  impulses  will  have  to 
reach  it  simultaneously  to  fire  it: 
behold,  an  AND  gate!"  Since  inhibi- 
tion (an  impulse  tending  to  reduce  the 
sensitivity  of  a  nerve  cell  to  an  im- 
pulse arriving  by  a  different  path)  can 
occur,  we  clearly  have  the  NOT 
operator,  and  with  the  addition  of 
OR  (a  nerve  cell  that  can  be  fired  by 
an  impulse  from  any  of  several 
paths),  we  have  all  of  the  ingredients 
for  a  generalized  logic  circuit. 

There  is  no  longer  sufficient  reason 
to  believe  that  the  nervous  system 
works  in  this  way.  Those  who  tried  to 
analyze  nerve  nets  as  logic  devices 
had  to  make  a  lot  of  assumptions, 
such  as  synchronism  or  clocking,  that 
are  incompatible  with  experimental 
facts.     This    more    modern    under- 

Figure  and  listing  numbering  continued 
from  part  2. 


94        August  1979  ©  BYTE  Publications  Inc 


standing  was  reflected  in  Dr  Ernest 
Kent's  recent  BYTE  article  series, 
'The  Brains  of  Men  and  Machines" 
(January  1978  BYTE,  figure  2,  page 
16).  It  now  seems  that  single  impulses 
are  not  a  significant  unit  of  informa- 
tion for  most  neurons.  What  counts  is 
frequency  of  firing.  The  sum  of  fre- 
quencies of  excitatory  and  inhibitory 
impulses  reaching  a  given  neuron  has 
an  effect  on  the  rate  of  that  neuron's 
firing  so  that  the  output  frequency  is 
a  function  of  a  set  of  input  fre- 
quencies. Most  neurons,  in  other 
words,  compute  analog,  not  digital, 
functions.  As  we  all  know,  it  is 
perfectly  possible  to  build  digital  cir- 
cuitry out  of  analog  components. 
Digital  integrated  circuits  are  all  con- 
structed from  analog  transistors. 

Therefore,  when  I  begin  to  identify 
components  of  a  control  system,  as  I 
will  do  in  a  moment,  the  signals  will 
be  thought  of  as  continuously 
variable  frequencies,  not  as  on/off 
binary  quantities.  The  functions  that 
combine  some  signals  will  be  func- 
tions of  continuous  variables.  While 
any  one  neuron  behaves  as  a  rather 
nonlinear  device,  a  collection  of 
neurons  performing  essentially  the 
same  function  in  parallel  yield  an 
overall  pleasantly  linear  input/output 
relationship,  especially  if  we  consider 
the  normal,  rather  than  extreme 
range  of  frequencies  (zero  or  satura- 
tion rates  of  firing). 

The  spinal  reflex  systems  we  will 
now  examine  involve  several  hundred 
—  sometimes  several  thousand  — 
control  systems  operating  in  parallel, 
although  they  will  be  drawn  as  simple 
control  systems.  A  perceptual  signal 
is  really  the  mean  rate  of  firing  in  a 
whole  bundle  of  pathways,  all  start- 
ing from  sensors  that  are  measuring 
the  same  input(eg:  stretch  in  a  ten- 
don). The  signal  that  enters  the  mus- 
cle in  this  system  is  a  bundle  of 
signals,  each  exciting  1  or  2  small 
fibers  out  of  the  thousands  that  make 
up  1  muscle.  Thus,  we  will  be  dealing 
with  neural  impulses  in  much  the  way 
electronic  engineers  deal  with  elec- 
trons. In  the  majority  of  cases,  the 
number  of  impulses  passing  through  a 
cross-section  of  a  bundle  of  redun- 
dant pathways  per  unit  time  will  be 
"the  signal,"  just  as  the  number  of 
electrons  passing  through  a  cross- 
section  of  a  conductor  per  unit  time  is 
called  "the  current." 


The  way  you 
check  line-by-line  with 
an  A  P  Intra-Switch  or 
Intra-Connector. 

You  plug  your  Intra-Switch  In-line 
with  standard  socket  connectors, 
and  instantly  you've  got  a  separate, 
independent  on-oft  switch  for  each 
and  every  line  in  your  flat  ribbon 
cable.  To  switch,  you  nudge  with  a 
pencil  point.  It's  that  quick. 

Imagine  how  much  time  and 
trouble  Intra-SwItch  will  save  you  in 
your  diagnostic  and  quality  testing, 
your  programming  and  selective 
line  inhibiting. 

Or,  plug  In  your  Intra-Connector 
(see  box)  the  same  way,  and  you 
have  an  extra  set  of  male  contacts 


at  right  angles.  Instant  llne-by-line 
probeabllity— and  an  easy  way  to 
tap  your  system  and  daisy  chain  It 
into  new  areas. 

Both  Intra-Connectors  and  Intra- 
Swltches  come  In  20, 26, 34, 40  and 
50-contact  models. 

Where?  At  your  nearby  A  P  deal- 
er. Where's  that?  Phone  (toll-free) 
800-321-9668.  And  ask  for  the  com- 
plete A  P  catalog.  The  Faster  and 
Easier  Book. 


AP  PRODUCTS 
INCORPORATED 

Box  110D     •  72  Corwin  Drive 
Painesville,  Otiio  44077 
Tel.  216/354-2101 
TWX:  810-425-2250 


Faster  and  Easier  is  what  we're  all  about. 


Circle  10  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        95 


Figure  13:  Figure  13a  is  the  standard  control-system  diagram  we  have  been  using  in  this 
series.  Figure  13b  is  a  spinal  reflex  arc.  FNI  is  the  input  function;  P,  the  perceptual 
signal;  C,  the  comparator;  R,  the  reference  signal;  E,  the  error  signal;  FNO,  the  output 
function;  O,  the  output  quantity;  FNF,  the  feedback  function;  I,  the  input  quantity; 
FND,  the  disturbance  function;  and  D;  the  disturbing  quantity.  Roots  are  bundles  of 
nerve  fibers  entering  or  leaving  the  spinal  cord.  An  actual  spinal  reflex  arc  may  involve 
several  hundred  systems  like  the  one  in  figure  13b,  with  as  many  motor  cells  all 
operating  in  parallel.  Thus,  a  signal  is  a  bundle  of  signals  that  carry  similar  information. 


(a) 


R 

■* 

c 

p 

E 

FNI 

FNO 

L 

A 

-N 

A 

-Od 


fbj 


BIFURCATION 


DORSAL    ROOTS 


Level-1  Control  System 

Figure  13b  is  a  schematic  diagram 
of  the  tenders  reflex.  Figure  13a  is  the 
diagram  of  a  general  control  system 
that  I  have  already  shown  and  dis- 
cussed earlier.  Figure  13a  has  an  input 
function  FNI,  a  perceptual  signal  P,  a 
comparator  C,  a  reference  signal  R, 
an  error  signal  E,  an  output  quantity 
O,  a  feedback  function  FNF  and  an 
input  quantity  I  completing  a  closed 
loop.  Entering  this  loop  at  the  same 
point  as  the  input  quantity  are  the  ef- 
fects of  a  disturbing  quantity  D,  af- 
fected by  the  disturbance  function 
FND. 

Figure  13b  contains  the  same  com- 
ponents in  the  same  relationships. 
The  input  function  is  a  sensor  which 
emits  a  signal  P,  the  frequency  of 
which  depends  continuously  on  the 
amount  of  stretch  I  of  the  tendon  at 
the  end  of  the  muscle.  This  signal  P 
travels  to  the  spinal  cord,  and  the 
local  branch  enters  an  inverter  which 
is  specialized  to  produce  inhibitory 
effects  on  any  neuron  it  reaches  (these 
actually  exist  in  the  spinal  cord  as 
Renshaw  cells).  This  inverted  copy  of 
the  perceptual  signal  reaches  the  cell 
body  of  a  motor  neuron  C,  which 
also  receives  an  excitatory  input  from 
a  pathway  descending  from  centers 
that  are  higher  in  the  nervous  system 
(the  reference  signal  R). 

The  signal  emitted  by  this  motor 
neuron  represents  the  excess  of  excita- 
tion over  inhibition,  and  thus  rep- 
resents the  difference  between  the 
reference  and  (inverted)  perceptual 
signal:  it  is  clearly  the  error  signal  E. 
The  error  signal  enters  the  muscle, 
where  it  is  converted  into  an  average 
shortening  of  the  contractile  fibers  in 
the  muscle  FNO.  The  output  quantity 
O  is  the  net  stretch  of  the  connective 
tissue  that  links  the  individual  con- 
tractile fibers  together.  The  feedback 
function  FNF  consists  of  the  mech- 
anical relationships  that  sum  all  these 
individual  little  forces  into  one  force 
that  will  tend  to  stretch  the  tendon. 

I  have  shown  the  disturbance  as  a 
string  that  pulls  directly  on  the  ten- 
don. It  is  rather  hard  to  disturb  the 
tendon  control  system  without  dis- 
secting the  organism,  a  procedure 
that  always  leaves  one  wondering 
whether  or  not  this  is  the  original 
system.  The  reflex  that  is  tested  with 
a  hammer  just  under  the  kneecap  is  a 
different  one,  a  muscle-length  control 


96        August  1979  ©  BYTE  Publications  Inc 


■  •■ 

!pr« 

>1 

^^^^*1 

m 

III 

7      HI 

■ 
m 
1 

[        1 

j 

11' 

olli.- 

s. 

J 

H« 

1 

i 

i 

1 

m 

If;; 

Mir             v 

I| 

riii 

•j  -ufr' 

^|M;I:il 

J   "    "  ■  J 

ififfl 

,„■:;;.,  m 

I'-fcij 

1 ------- 

Bte'rv-Hi^       ^     ,.,."';,  ffl    *— 

— ^^^ — 

-^M^ 

1  \^\\'-/'/z>-pj-\\ 

^.^i-^v'^i.  .  -•^••v,!] 

Wiiiiiiiiiiriiiliiiiiiiriiiiilli 

mxmm 

if^                        ^ 

32K  Board  Pictured  Above 


New  RAM  Prices. 

From  The  Dynamic  Memory  Company. 


16K— $249 
48K— $500 


32K— $375 
64K— $625 


Ever  since  we  started  making 
these  memory  boards  over  a  year 
ago  we  have  continued  to  lower 
our  prices  to  stay  competitive. 
Due  to  your  confidence  in  us,  we 
are  again  able  to  lower  our 
pricesi  Our  reliability  has  been 
proven  by  months  of  superior 
performance  in  thousands  of 
installations.  Our  low-power  boards 
are  being  used  by  quality-minded 
systems  manufacturers  across  the 
country  and  overseas. 

4MHz  boards  now  available. 

After  receiving  hundreds  of 
requests,  our  engineering  staff  has 
come  up  with  a  new  version  of  our 
board  which  runs  on  4MHz  Z-80 
systems.  It  wasn't  easy  to  come 
up  with  a  high  speed  board  which 
would  operate  as  reliably  as  our 
450ns  version,  but  after  months  of 
careful  design  and  testing,  we  did 
it.  The  price  of  the  250ns  board  is 
$10  per  16K  additional. 

Circle  45  on  inquiry  card. 


All  of  our  features  remain. 

Our  boards  didn't  become  great 
sellers  only  because  of  the  price. 
We  still  offer  you  our  deselect 
feature  which  allows  our  RAM  to 
overlap  with  any  fixed  memory 
areas  in  your  system.  Also,  the 
RAM  area  of  our  board  is  fully 
socketed  so  that  you  can  expand 
the  board  yourself. 

Other  standard  features  include: 
plug  selectable  addressing  on  1 6K 
boundaries  (shorting  plugs  are 
placed  over  wire-wrap  pins  to 
address  the  board  —  located  on 
the  top  of  the  board  for  easy 
changes),  S-100  and  Z-80 
compatability  and  totally  invisible 
refresh  —  no  wait  states. 

Fully  assembled,  tested,  and 
guaranteed. 

All  of  our  boards  go  through  a 
rigorous  testing  procedure.  They 
are  then  placed  on  burn-in  running 
a  series  of  memory  tests  to  detect 
any  other  possible  faults.  After  you 
receive  the  board,  you  are  backed 
by  us  with  a  one  year  warrantee. 


Low  power  consumption  keeps 
your  computer  from  "losing  its 
cool." 

The  total  power  consumption  of 
our  1 6K  board  is  typically  less 
than  4  watts  (-I-8V  @  300ma, 
+ 1 6V  @  1 50ma  and  - 1 6V  @ 
20ma).  Boards  with  additional 
memory  typically  increase  power 
consumption  only  1  watt  per  1 6K! 

Standard  S-100  Interface. 

Our  board  is  designed  to 
interface  with  any  standard  S-100 
CPU.  Ail  of  the  timing  of  the  board 
is  Independent  of  the  processor 
chip,  and  the  board  is  set  up  for 
different  processors  by  changing 
two  plugs  on  the  board. 

Contact  your  local  dealer. 

To  find  out  more  about  our  RAM 
boards,  contact  your  local  dealer. 
If  he  is  unable  to  help  you,  call  or 
write  us  for  a  fast  response. 
Central  Data  Corporation,  1207 
North  Hagan  Street,  Champaign,  IL 
61820.  (217)359-8010 

Central  Data 

BYTE  August  1979         97 


Circle  73  on  inquiry  card. 


Psscsl 
MICROENGINF" 
16-bit  P-code  CPU 


Pascal  executes  13x  faster  tlian  on  an  LSI-11 
and  3x  faster  than  on  a  PDP11-34! 


^2695* 

^WWW  READY  TO  RUN 

^2995       ListpHce 

^1795*    without  case  &  power  supply 


STANDARD 

•  16-bit  P-code  CPU 

•  64K  bytes  RAM 

•  Floppy  disk  controller 

•  Direct  memory  access  controller 

•  Floating  point  hardware 

•  2  serial  (RS-232)  I/O  ports— 50  to  19200  baud 

•  2  parallel  I/O  ports 

•  Pascal  &  Basiccompilers,  text  editors,  file 
manager,  CPU  &  memory  diagnostics, 
symbolic  Pascal  debugger,  linker,  utilities,  etc. 


The  MICROENGINE"-  P-Machlne  architecture 
implements  direct  execution  of  P-code  (UCSD 
Pascal  version  3.0)  replacing  software  inter- 
preters. All  data  and  I/O  paths  are  16  bits  wide. 
Both  single  and  multi-byte  instructions  are 
available.  Floating  point  hardware  using  the 
proposed  IEEE  standard  supports  the  execution 
of  floating  point  instructions. 
P-fvlachine  architecture  optimizes  memory 
utilization.  Stack  design  renders  Pascal 
programs  automatically  reentrant  and 
recursive  with  no  performance  penalty. 
Extensive  compiler  error  checking  and  high 
level  language  sustains  high  reliability. 
Programs  are  transportable  to  other  systems 
running  Pascal. 

Built-in  floppy  disk  controller  handles  up  to  4 
drives,  switch  selectable  for  5V*  or  8  inch,  single 
or  double  sided.  A  hard  disk  controller  will  be 
available  soon. 


$799' 


List  price  ^956 
PERKIN-ELMER  (Model  550) 


Shugart 

floppy  disk  (Model  SA850) »695* 

Shugart 

floppy  disk  (Model  SA800) »595' 

Taxas  Inatrumante 

printer  (Model  810) M895' 


X-p«rt  Systama'"  designed  by  Computax 
are  integrated  and  cost  effective.  Complete  16-bit 
systems  are  available  starting  as  low  as  '3139. 
Cuatomar  aatlafactlon  ia  guarantaad. 

Full  refund  with  the  return  of  any  product  within 
10  days.  Service  contracts  available.  Systems 
catalog  $1.  MICROENGINE'"  owners  manual 
»19.95  postpaid. 

*LIMITEDTIMEcashprlca.  10%down 

guarantees  priority,  IL  residents  add  5%  sales 
tax.  Master  Charge  and  VISA  cards  accepted. 


(312)684-3183 

COMPUTE)^ 

"THE  COMPUTER  EXPERTS  " 
5710  Drexel,  Chicago,  IL  60637 


system.  Artificially  stretching  the  ten- 
don will  tend  to  relax  the  muscle, 
since  the  feedback  is  inhibitory. 

In  part  2  I  described  how  control 
systems  work.  We  now  immediately 
know  what  this  spinal  reflex  loop 
does.  It  maintains  the  perceptual 
signal  P  matching  the  reference  signal 
R.  Since  P  is  a  measure  of  tension  in 
the  tendon,  we  can  say  that  this  con- 
trol system  controls  the  sensed  ten- 
sion, and  not  the  degree  of  contrac- 
tion of  the  muscle.  It  also  varies  the 
amount  of  contraction  in  the  fibers  of 
the  muscle  to  oppose  any  extraneous 
effects  that  tend  to  alter  the  tension  in 
the  tendon,  either  increasing  or 
decreasing  it. 

We  know  that  muscles  are  attached 
to  bones,  generally  across  a  joint,  and 
that  when  a  muscle  changes  tension  it 
often  changes  the  angle  at  the  joint 
that  it  spans.  In  this  way  movements 
are  created  and  forces  are  applied  to 
objects,  or  against  gravitational  and 
other  forces.  However,  this  little  con- 
trol system  knows  nothing  of  that. 
The  only  behavior  it  produces  is 
sensed  tension.  It  controls  a  neural 
signal  which  represents  the  net  force 
being  created  by  the  muscle  and  any 
active  disturbances.  The  control 
system  does  not  know  this  —  it  has, 
after  all,  only  the  one  kind  of  sensor. 
It  knows  only  how  much  signal  it  is 
getting  from  the  outside  world,  and 
not  even  what  kind  of  signal  this  is.  It 
is  just  an  amount.  It  would  need 
many  other  sensors  and  a  very  in- 
telligent computer  in  order  to  know 
that  this  amount  is  measured  in  units 
of  tension. 

First  Level  of  Behavioral  Control 

Every  muscle  that  is  used  in  volun- 
tary behavior  (as  opposed  to  internal 
or  visceral)  is  involved  in  a  control 
system  like  that  in  figure  13b.  There 
are  no  exceptions.  Thus,  there  is  no 
way  that  any  higher  process  in  the 
brain  can  directly  produce  a  muscle 
tension.  The  brain  can  produce  a 
muscle  tension  only  by  providing  a 
reference  signal  which  specifies  how 
much  tension  is  to  be  sensed.  This 
does  not  even  determine  how  tense 
the  muscle  will  be,  for  if  there  is  a 
steady  external  disturbance  working, 
the  muscle  will  adjust  its  degree  of 
contraction  to  compensate  for  the 
disturbance.  Pull  steadily  on  the  ten- 
don, and  the  muscle  will  completely 
relax,   even  with   the  presence  of  a 


nonzero  reference  signal.  Inject 
Novocain  into  the  perceptual 
pathway,  and  the  muscle  may  go  into 
a  violent  spasm  because  it  is  trying  to 
create  a  perceptual  signal.  The  brain 
cannot  command  the  muscles  to  con- 
tract. It  can  only  tell  level-1  control 
systems  how  much  tension  to  sense.  It 
is  up  to  those  control  systems  to  do 
what  is  necessary  to  create  the 
demanded  signal. 

Gray's  Anatomy  names  about  200 
muscles,  most  of  which  occur  in 
pairs,  and  many  of  which  consist  of 
numerous  subdivisions  capable  of 
having  different  effects.  There  are 
perhaps  500  to  800  muscles  which  can 
be  distinguished  on  the  basis  of  dif- 
ferent directions  of  effect.  Thus,  we 
own  500  to  800  level-1  control  sys- 
tems. Every  human  action  must  be 
performed  by  adjusting  the  reference 
signals  for  these  control  systems.  The 
behavior  of  these  control  systems 
need  not  be  simulated  for  the  simple 
reason  that  this  has  been  done  to  a 
sufficient  degree  in  part  2  of  this 
series. 

There  are  actually  more  level-1 
control  systems  than  muscles.  For  ex- 
ample, every  muscle  also  contains 
length  sensors,  which  are  involved  in 
level-1  control  systems  that  govern 
not  force,  but  something  related  to 
the  stretching  of  the  muscle  itself. 
Length  and  force  can  be  controlled 
quite  independently  under  suitable 
circumstances;  however,  we  won't  be 
getting  into  such  details  here.  The 
main  point  is  that  we  chew,  scratch, 
talk,  walk,  run,  and  swim  by  using 
level-1  control  systems,  and  by  telling 
them  not  what  to  do,  but  what  to 
sense. 

Higher  Levels  of  Control 

We  have  accounted  for  all  outgoing 
signals  from  the  brain  that  are  con- 
cerned with  overt  actions  (in  the  sense 
that  all  will  act  on  level-1  control 
systems,  although  there  may  be,  at 
level  1,  control  systems  we  haven't 
considered  here).  We  have  not,  how- 
ever, accounted  for  all  incoming 
signals.  The  nervous  system  has  hun- 
dreds of  millions  of  sensory  endings, 
most  of  which  are  not  involved  in 
level-1  control  systems. 

You'll  notice  that  in  figure  13b  the 
perceptual  signal  branches.  This  is  a 
real  branch;  all  level-1  perceptual 
signals  involved  in  these  control 
systems  branch,  sending  one  branch 


98        Augusl  1979  ©  BYTE  Publiiralions  Inc 


Circle  120  on  inquiry  card. 


SPECIALIZING  IN 


QUALITY  MICROCOMPUTER  HARDWARE 

INDUSTRIAL  •  EDUCATIONAL  •  SMALL  BUSINESS  •  PERSONAL 


BUILDING  BLOCKS  FOR  MICROCOMPUTER  SYSTEMS,  CONTROL  &  TEST  EQUIPMENT 


R2      I/O 

2K  ROM 
2K  RAM 

3  Serial  Ports 
1  Parallel  Port 


16  K  RAM 

FULLY  STATIC 
MEMORY 


ECT-100-F 

RACKMOUNT 
CARD  CAGES 


ECT" 


'''"I'm,  t^, 


'""°'2,.cft„„,, 


'•'m 


POWER  SUPPLIES,  CPU'S,  MEMORY,  OEM  VARIATIONS 


TT-10 

TABLE  TOP 
MAINFRAMES 


763  RAMSEY  AVE. 
HILLSIDE,  N.J.  07205 


ELECTRONIC  CONTROL  TECHNOLOGY  (2oi)  686  soso 


SAVE  THE  WHALE 

The  Fm  Whale  is  the  ivorld's  greatest  long-distance  communicator. 


Scientists  believe  that  loud,  deep-tone,  low-frequency 
sounds  made  by  Fin  Whales  (frequencies  around  20 
hertz,  or  cycles  per  second)  actually  travel 
underwater  for  distances  of  at  least  500 
miles,  and  under  optimum  conditions 
might  carry  for  a  radius  of  over 
4,000  miles,  potentially  reach- 
ing an  area  greater  than  the 
entire  Atlantic  Ocean. 


Drawing  by 
Don  Sinf/i 


Fin   Whales,   the  second  largest 


creatures  ever  to  have  lived  on  planet 
earth,  grow  up  to  24  meters  in  length  (ex- 
ceeded  only  by  the  30-meter  Blue  Whale),  and 
habit  all  the  oceans  of  the  world.  Tens  of  thousands  of 
Fin  Whales  have  been  "harvested"  in  recent  years,  by  agreement 
of  the  International  Whaling  Commission,  for  the  sale  of  products 
for  which  substitutes  are  readily  available. 


The  CONNECTICUT  CETACEAN  SOCIETY  is  a  small,  totally  volunteer,  non-profit  edu- 
cation and  conservation  organization  dedicated  to  seeking  the  abolition  of  all  whale  killing.  Any 
concerned  citizen  can  help  our  efforts  by  sending  name  and  address  and  a  $1  5  or  more  contribution 
to:  CCS,  P.  0.  Box  145,  Wethersfield  CT  06109. 


BYTE  August  1979        99 


upward.  Many  of  the  branches  — 
enough  to  represent  what  is  going  on 
in  all  the  muscles  —  continue  upward 
to  the  next  level  of  organization.  The 
perceptual  signals  from  level-1  input 
functions  that  are  not  parts  of  control 
systems  do  likewise.  Thus,  we  can 
imagine  a  higher  part  of  the  nervous 
system  that  is  completely  sur- 
rounded, with  regard  to  input  and 
output,  by  level-1  systems  and  input 
functions. 

The  signals  going  downward  from 
this  higher  part  end  up  in  control 
systems  of  the  general  type  shown  in 
figure  13b,  controlling  sensed  tension 
and  a  few  other  simple  variables.  The 
signals  going  upward,  the  level-1 
perceptual  signals,  all  reach  the  next 
higher  level  of  organization,  which 
happens  to  be  represented  in  the  brain 
stem,  the  cerebellum,  and  one  part  of 
the  cerebral  cortex. 

Imagine  a  second  level  of  control 
systems.  The  input  functions  of  this 
new  layer  will  not  be  equipped  with 
sensors;  instead,  they  will  receive  the 
perceptual  signals  generated  by 
level-1  input  functions  (or  in  the  case 


of  signals  involved  in  level-1  control 
systems,  copies  of  them,  courtesy  of 
the  bifurcation  of  the  dorsal  roots). 
These  signals,  in  subsets,  are  the  real- 
time inputs  to  level-2  input  functions, 
each  of  which  generates  one  level-2 
perceptual  signal.  We  define  a  level-2 
input  function  in  terms  of  the  way  a 
single  level-2  perceptual  signal  de- 
pends on  some  set  of  level-1  per- 
ceptual signals. 

It  is  now  clearly  possible  to  con- 
struct a  level-2  comparator,  provide 
it  with  a  reference  signal,  and  make  it 
generate  a  level-2  error  signal.  That 
error  signal  can  then  be  wired  to  the 
input  of  a  level-2  output  function, 
and  copies  of  the  output  of  that  FNO 
can  be  fanned  out  to  serve  as  ref- 
erence signals  for  level-1  control 
systems. 

In  fact,  we  can  construct  as  many 
level-2  control  systems  as  we  like, 
until  we  run  out  of  neurons  that  are 
located  where  the  level-1  perceptual 
signals  terminate  and  the  level-1 
reference  signals  originate.  All  out- 
going signals  that  are  further  inward 
will  be  accounted  for;   they  will  be 


READ  THE  MAGAZINE 
THE  PROS  READ. 


For  over  20  years  DATAMATION  has 
been  the  magazine  for  the  data  process- 
ing professional.  Now  DATAMATION 
magazine  is  available  to  hobbiests,  busi- 
ness men,  accountants,  engineers,  pro- 
grammers .  .  .  anyone  with  a  deep  curio- 
sity about  the  real  world  of  data  pro- 
cessing. 

Written  by  the  data  processing  pro- 
fessional for  the  data  processing  profes- 
sional, DATAMATION  magazine's  ar- 
ticles cover  a  wide  range  of  subjects  .  .  . 
industry  trends,  "how  to  do  it  better" 
articles,  budget  and  salary  surveys,  new 
computer  applications,  advanced  tech- 
nology, new  products  and  services. 

Whether  your  interest  in  computers  is 
for  fun  or  profit,  DATAMATION  mag- 
azine has  a  world  of  information  for  you 
every  month  .  . .  plus  an  annual  Special 


Edition,  the  Industry  Profile  featuring 
the  "DATAMATION"  50"  -  the  top 
U.S.  DP  companies. 

Technical  Publishing 

nn  acompunyof 

WMMB  ThcDun&Bradstrcct Corporation 

FOR  A  ONE  YEAR  SUBSCRIPTION 
(13  ISSUES)  SEND  $32. 

TO:   SUZANNE  A.  RYAN 

DATAMATION  magazine 
666  FIFTH  AVENUE 
NEW  YORK,  NY  10019 


Name 


Address 
City 


L 


State/ Zip. 


magazine 


level-2  reference  signals.  (If  you  can 
figure  out  why  they  can't  be  level-1 
reference  signals,  bypassing  level  2, 
you  are  beginning  to  understand  con- 
trol theory.  Hint:  Level-1  reference 
signals  are  adjusted  by  level-2  sys- 
tems: what  happens  if  an  arbitrary 
signal  is  added  to  the  output  of  a 
level-2  system?) 

Some  level-1  perceptual  signals 
may  be  combined  to  produce  level-2 
perceptual  signals,  without  involving 
the  new  perceptual  signals  in  any 
level-2  control  system.  Perceptual 
signals  that  are  involved  in  level-2 
control  systems  branch,  just  as  their 
counterparts  at  level  1  do:  one  of 
the  branches  heads  further  inward 
and  upward  in  the  brain.  We  can  now 
repeat  the  process  of  going  from  the 
first  to  the  second  level  of  control. 
Clearly,  a  third  level  of  control 
systems  can  be  constructed,  then  a 
fourth,  and  so  on,  until  we  run  out  of 
brain  and  find  ourselves  looking  at 
the  inside  surface  of  the  skull. 

This  is  my  model  of  the  brain.  It 
will  be  discussed  in  greater  detail  in 
the  next  article  of  this  series.  At  pre- 
sent we  will  develop  a  clearer  under- 
standing of  the  relationship  between 
one  level  of  control  and  the  next 
higher  level  of  control  through  the 
use  of  BASIC.  As  you  will  see,  the 
relationship  has  some  rather  amazing 
and  challenging  properties. 

Two-Level  Control  Hierarchy 

We  are  going  to  model  a  very 
elementary  2-level  control  system.  I 
won't  attempt  to  model  a  real  human 
system  because  it  would  get  too  com- 
plicated. The  imaginary  system  will 
consist  of  3  level-1  control  systems, 
each  controlling  sensed  force  (just  as 
in  the  tendon  reflex  system)  and  3 
level-2  systems,  each  controlling  a 
separate  aspect  of  the  forces  control- 
led by  level-1  systems. 

The  3  muscles  will  be  laid  out  in  a 
plane,  one  end  of  each  being  joined  at 
a  common  central  point,  and  the 
other  being  anchored  to  a  point  in  the 
plane.  If  the  angles  between  the  mus- 
cles are  equal,  they  will  form  a  Y.  We 
will  assume  that  the  common  connec- 
tion does  not  move;  the  muscles  will 
apply  a  force  there  but,  as  in  the  case 
of  flying  a  stick-controlled  airplane, 
any  movement  will  be  negligible. 
This  allows  us  to  ignore  some  com- 
plex interactions  between  the  mus- 
cles. Those  interactions  would  not  in- 


100        August  1979  ©  BYTE  Publications  Inc 


Circle  94  on  inquiry  card. 


^^MINIMAX 

^^  TULLY  INTEGRATED  COMPUTER  SYSTEM" 


MINIMAX  SERIES  COMPUTER 


THE  MINIMAX  SERIES  WAS  DESIGNED 

TO  OFFER  THE  MARKET  MINICOMPUTER 

CAPABILITIES  AT  MICROCOMPUTER  PRICES. 

COMPARE  THE  CAPABILITIES  &  PRICE! 

CONTACT  NEECO  FOR  FULL  SPECS  -  FREE  MINIMAX  MANUAL. 


MEET  THE 
MINIMAX  COMPUTER  """"^^  minimax  series  computer  was  designed  by  industry  professionals. 

COMPARE  THE  price  AND  features  TO  ANY  OTHER  COMPUTER  IN  ITS  CLASS! 


MINIMAX  I  -  .8  MEGABYTE 
ON  LINE  MINIFLOPPY  STORAGE 
MINIMAX  II  -  2.4  MEGABYTE 
ON  LINE  8 "  FLOPPY  STORAGE 


MINIMAX  I  - 
MINIMAX  II 


PRINTER  NOT 
INCLUDED  IN  PRICE 


$4495 
$5995 


•  THEMINIMAXSERIESCOMPUTERISANINTEGRATED.COMPACTUNITCONTAININGTHECPU,  DUAL  DENSITY  DISK  STORAGE,  12 
INCH  CRT,  AND  FULL  STYLE  KEYBOARD,  WITH  SEPARATE  NUMERIC  ENTRY  PAD.  ALL  KEYS  (INCLUDING  CURSOR)  WITH  FULL 
REPEAT  •  HYBRID  2  MEGAHERTZ  6502  CPU  •  108K  SYSTEM  RAM  (48K  USER)  •  FASTEST  FLOPPY  DISK  ACCESS  (24K  LOADS  IN  4.2 
SECONDS)  •  16K  ROM  CONTAINS  COMPUTHINK  BASIC  (AN  EXTENDED  MICROSOFT  BASIC)  WITH  EXTENDED  PRECISION,  DOS 
INCLUDES  COMPLETE  FILE  I/O  WITH  FULL  RANDOM  ACCESS,  COMPLETE  MONITOR  WITH  DEBUG  &  TRACE,  AND  TINY  6502 
ASSEMBLER  •  COMPLETE  HIGH  RESOLUTION  GRAPHICS  WITH  INDIVIDUAL  DOT  (240x512)  POINTSCREEN  ADDRESSABILITY  • 
FULL  SCREEN  TEXT  EDITING  WITH  OVERWRITE,  INSERTION  OR  DELETION  •  SPLIT  SCREEN/WINDOW  MODES  •  INDIVIDUAL 
FIELD  EDITING  WITH  FIELD  PROTECT  AND  AUTO  SKIP  TO  NEXT  FIELD  •  DISK  STORAGE  SYSTEM  TRANSFERS  6K  PER  SECOND 
WITH  AUTO  VERIFY  AND  PARITY  CHECK  •  12  INCH  CHT-64  CHARACTERS  BY  30  LINES.  UP  TO  THREE  PROGRAMMABLE 
CHARACTER  FONTS  FOR  LANGUAGES  OR  SPECIAL  CHARACTERS  •  •  •  SWITCHABLE  1 10  OR  220V  OPERATION  •  •  •  •  HYBRID 
CPU  IS  MICROPROGRAMMABLE  WITH  64  USER  DEFINABLE  OPCODES.  CHOICE  OF  BOOK  OR  2.4  MEGABYTE  DISK  STORAGE  •  FULL 
SERIAL  RS-232C  PORT  WITH  PROGRAMMABLE  BAUD  RATES  AND  MODEM  CONTROL  SIGNAL  •  DEDICATED  DISK  PORT  • 
PRINTER  PORT  SUPPORTS  PARALLEL  COMMERCIAL  PRINTERS  •  24  PIN  I/O  USER  PORT  •  PAGEMATE  DATABASE 
AVAILABLE  •  PLM  COMPILER  AVAILABLE  •  BUSINESS  PACKAGES  AVAILABLE  •  COMPLETE  DIAGNOSTICS  &  SCHEMATICS 
INCLUDED     •  COMPLETE  USER  MANUAL  INCLUDED 

SPECIAL  DEALER  PRICING  AVAILABLE  ON  DEMONSTRATION 

MINIMAX  AND  SOFTWARE  PACKAGES  TO  QUALIFIED 

SELECTED  DEALERS.  CONTACT  NEECO  FOR  INFO. 


THE  MINIMAX  WAS  DESIGNED  AND  IS  MANUFACTURED  BY  COMPUTHINK 
COMPUTER  CORP.  DISTRIBUTED  IN  EUROPE  AND  THE  EASTERN  U.S.  BY  NEECO. 


IN  ADDITION  TO  HARDWARE  CAPABILITIES  THAT  ARE  UNMATCHED  IN  THE  INDUSTRY,  THE  MINIMAX 
COMPUTER  SUPPORTS  A  COMPLETE  DATA  BASE  SYSTEM  (PAGEMATE),  CONTAINING  FULL 
STATISTICAL,  SORTING,  AND  EDIT  FUNCTIONS.  A  PLM  COMPILER  IS  AVAILABLE,  FULL  BUSINESS 
SUPPORT  SOFTWARE  IS  AVAILABLE  AND  MORE!— FULL  DEALER  SUPPORT  IS  AN  IMPORTANT 
PART  OF  OUR  MARKETING.  CONTACT  NEECO  FOR  FURTHER  INFORMATION. 


THE  MINIMAX  IS  NOW  AVAILABLE  FOR  QUANTITY  DELIVERY.  DOMESTIC  DEALERSHIPS  AVAILABLE. 

EUROPEAN  DISTRIBUTORSHIPS/DEALERSHIPS  AVAILABLE  TO  QUALIFYING  COMPANIES  WITH 

SUPPORT  CAPABILITIES.  SOFTWARE  HOUSES  AND  OEM  INQUIRIES  INVITED.  CONTACT  NEECO. 


NEECO 


NEW  ENGLAND  ELECTRONICS  CO.,  INC. 

679  HIGHLAND  AVE.,  NEEDHAM,  MA  02194 

MON-FRI,  9:00-5:30,  E.S.T. 


(617)449-1760 


TELEX  951021,  ANSWERBACK  "NEECO" 


Circle  281  on  inquiry  card. 


BYTE  Aususl  1979 


101 


terfere  with  control,  but  would  make 
the  model  very  complicated.  In  simu- 
lating a  control  organization,  it  is 
always  the  simulation  of  the  environ- 
ment that  creates  complexities.  The 
geometric  interactions  between  the 
muscles  are  properties  of  the  world  in 
which  these  control  systems  live,  not 
of  the  control  systems  proper. 

There  will  be  3  level-1  control 
systems,  1  for  each  muscle.  Each  will 
sense  the  force  being  generated  by  its 
own  muscle.  Each  will  have  a  loop 
gain  of  10,  and  a  slowing  factor  of 
0.07  (see  part  2  for  discussion  of  these 
properties). 

There  will  also  be  3  level-2  control 
systems.  One  will  use  the  3  muscles  to 
control  a  force  in  the  X  direction  (left 
and  right),  another  will  control  a 
force  in  the  Y  direction  (up  and 
down),  and  the  third  will  control  the 
sum  of  the  3  forces,  this  sum  cor- 
responding to  what  physiologists  call 
"muscle  tone."  We  will  see  why  there 
is  such  a  thing  as  muscle  tone  (the 
steady  mutually  cancelling  tension 
that  is  always  there  in  muscles).  Each 
level-2   control   system   will   have   a 


loop  gain  of  50,  and  a  slowing  factor 
of  0.01. 

I  hope  that  this  arrangement  looks 
a  little  amazing,  fiere  we  have  3 
muscles  spaced  at  roughly  120-degree 
intervals  around  a  common  point.  No 
one  muscle  pulls  in  either  the  X  or  the 
Y  direction.  To  pull  in  the  X  direc- 
tion, all  3  muscles  must  alter  their 
tensions.  To  pull  in  the  Y  direction, 
all  3  must  alter  their  tensions.  To 
vary  the  muscle  tone  all  3  must  once 
more  alter  their  tensions.  We  will  be 
able  to  set  reference  values  for  these  3 
variables  at  the  same  time,  throw  in  a 
disturbance  of  arbitrary  size  and 
direction  to  boot,  and  there  will  be  no 
interference  among  the  systems  that 
cannot  be  easily  taken  care  of.  Each 
level-2  force-controlling  system  will 
be  able  to  keep  its  perceptual  signal 
matched  to  any  reference  signal, 
while  the  others  do  the  same  thing  at 
the  same  time. 

It  may  add  interest  to  know  that 
the  outputs  from  the  level-2  systems 
to  the  level-1  systems  will  not  be  ac- 
curately weighted:  the  only  choice 
will  be  whether  or  not  a  given  level-2 


Interactive  Computer 
Graphics  Software^ 

For  Microsoft  and  DEC  Fortran 


Sf  the 

GSP.  The  tqp  graph  was  made  on  a  X-V-Z 
self- refreshed  display.  The  botfcw  or.v-,]-, 
\-'iK  made  on  a  Diablo'  16'-:- 


fr^':.,.  :  ,  ■ 

merrtal  plotters,  and  even  hish  speed 
self-rafreshcd  raster  scan  displays. 
The  complete  package  Is  written  in 
standard  Fortran  IV,  makina  it  porta- 
ble to  all  computers,  including  mini 
and  micro  systems. 

The  entire  set  of  over  20  subpro- 
grams, including  drivers  for  a  CRT  im 
minal  and  a  Diablo  1 620  printer,  sel 
for  $400.  Drivers  for  other  devices 
may  be  added. 

•Ti-ad«nMrk  of  Digital  Equipment  Corp, 

Compco 

8705  North  Port  Washington  Road  X 
Milwaukee,  Wis,  53217     414/351  34041 

COMPUTER  SPECIALISTS 


m 


output  reaches  a  given  level-1  com- 
parator after  multiplication  by  1,  0, 
or  —1.  All  3  level-2  outputs  will 
reach  and  be  added  together  in  all  3 
level-1  comparators.  The  neat  separa- 
tion of  X,  Y,  and  tone  control  is  not 
accomplished  by  carefully  balancing 
the  amount  of  output  sent  to  each 
level-1  system.  Only  the  crudest  ad- 
justment has  to  be  made  on  the  out- 
put side,  essentially  the  choice  bet- 
ween positive  and  negative  feedback, 
with  negative  always  being  chosen. 

We  now  come  to  what  is  perhaps 
the  most  fundamental  concept  of  this 
theory  of  brain  function.  The  organ- 
ization which  determines  that  an  X 
vector,  a  Y  vector,  and  a  tone  or 
scalar  force  will  be  controlled  is 
found  in  the  input  functions,  not  in 
the  output  functions.  The  organiza- 
tion of  behavior  is  determined  by  the 
perceptual,  not  the  motor  organiza- 
tion of  the  brain.  By  the  time  we 
finish  this  installment  you  will  see  ex- 
actly how  that  happens. 

Setting  Up  the  Model 

Let  us  start  by  looking  at  a  typical 
control  system  of  unspecified  level  in 
a  hierarchy  of  control  systems.  This 
system  will  receive  multiple  input 
signals  from  lower-level  systems  and 
multiple  reference  signals  from 
higher-level  systems.  It  will  emit  just 
1  output  signal  (we  will  assume  that 
the  only  need  for  an  explicit  output 
function  is  to  provide  error  amplifica- 
tion and  to  smooth;  otherwise  the  er- 
ror signal  could  be  used  directly  as 
the  output  signal).  Figure  14  shows 
this  typical  system. 

Perceptual  Inputs  from 
Lower  Levels 

The  input  function  will  now  be  a 
little  too  complicated  to  be  repre- 
sented as  a  BASIC  function  since  we 
need  a  set  of  weighting  factors  so  that 
each  input  can  be  assigned  a  weight 
before  summing  all  of  the  inputs 
together.  The  easiest  way  to  deal  with 
weighting  factors  for  a  generalized 
system  is  to  use  a  matrix  that  contains 
all  of  the  factors  for  all  of  the  levels. 
For  the  input  function  we  designate 
the  matrix  as  S  (for  sensory)  and 
write  it  as: 

S(L,J,K), 
where:        L  =  level 

J     =  system  at  that  level 
K  =  weight  of  Kth  signal 
from  level  L  — 1. 


102        Augusl  1979  ©  BYTE  Publicalions  Inc 


Circle  53  on  inquiry  card. 


TO    HIGHER    LEVELS 


A 


FROM    HIGHER   LEVELS 

^       Q      U      Q 


0  0  ()  (] 

FROM    LOWER   LEVELS 


0 


TO    LOWER   LEVELS 


Figure  14:  A  typical  control  system  in  the  middle  of  a  hierarchy  of  control  systems.  This 
system  receives  multiple  reference  signals,  given  a  positive  or  a  negative  sign  by  an 
appropriate  entry  in  the  M  matrix  (no  other  weighting).  The  sum  of  these  reference 
signals  is  the  effective  reference  signal.  The  system  also  receives  multiple  input  signals 
which  are  copies  of  perceptual  signals  in  lower-order  systems.  These  signals  are  given 
quantitative  weightings  by  the  S  matrix  and  summed  in  the  input  function  FNI  of  the 
system  to  create  this  system's  perceptual  signal  P.  A  duplicate  of  the  perceptual  signal 
travels  upward  to  higher-level  systems. 

The  perceptual  signal  is  subtracted  from  the  effective  reference  signal  (or  vice  versa), 
and  the  remainder  is  emitted  by  the  comparator  C  as  the  error  signal.  The  error  signal  is 
amplified  and  smoothed  by  the  output  function  FNO  with  the  result  being  emitted  to 
lower-level  systems  as  the  output  signal  O. 


The  perceptual  signal  for  this  Jth 
system  at  the  Lth  level  will  be 
designated  P(LJ).  The  perceptual 
signal  can  thus  be  written  as  the  sum 
of  contributions  (weighted)  from 
some  set  of  lower-level  systems,  a 
weighting  of  O  in  the  S  matrix  mean- 
ing absence  of  a  connection: 

N(L-1)-1 

P(LJ)  =  I]         S(L,J,K)XP(L-1,K) 

K=0 

where    N(L  — 1)    is    the    number    of 
systems  in  the  next  lower  level. 


Reference  Inputs  from 
Higher  Levels 

A  similar  operation  is  performed  to 
calculate  the  net  reference  signal 
R(LJ).  A  matrix  M(LJ,K)  is  used  to 
select  a  connection  factor  (1,  0,  or 
—  1)  for  each  output  of  a  higher-level 
system;  the  net  reference  signal  is  the 
sum  of  all  the  outputs  of  the  higher- 
level  systems,  each  multiplied  by  its 
appropriate  factor.  A  0,  of  course, 
means  no  connection. 

The  M  matrix  is  filled  by  looking  at 
the  sign  of  the  corresponding  entry  in 
the  S  matrix  for  the  next  higher  level. 


NEW!   Internal 
Power  Supply! 
Plus  External 


The  Best  of 
Both  Worlds 


Looking  for  multi-purpose  PET*  expansion? 
The  Beisi  S-IOO  Interface/Motherboard  has 
a  new  inboard  power  supply,  for  the  best  of 
both  worlds. 

Outside  the  PET,  the  versatile  BeIsi  inter- 
face provides  four  S-100  slots  for  instant  plug-in 
expansion.  The  availability  of  S-100  boards 
puts  a  wide  range  of  applications  within  easy 
reach  of  a  PET/BeIsi  system. 

The  new  Betsi  Power  Supply  mounts  inside 
PET,  eliminating  excess  clutter.  It  takes  only 
minutes  to  install,  plugs  into  PET's  existing 
connectors,  and  even  turns  on  and  off  with 
your  PET! 

Betsi  features: 

•  Dynamic  Memory  Controller  for  use  of  S.D. 
Systems  "Expandoram"  board.  (Gel  full  32K 
PET  expansion  on  a  single  S-100  card!) 

•  Direct  plug-in  connection  to  PET.  No 
additional  cables  or  backplanes  required. 

•  Accepts  nearly,  all  S-100  boards,  including 
memory  I/O,  speech  processors  and  more. 

•  On-board  sockets  for  8K  of  PROIVl  Tirmware 
(no  extra  hardware  needed). 

The  new  Betsi  Power  Supply  makes  a  PET/ 
Betsi  system  easier  than  ever  to  use.  With  prices 
worth  a  second  look,  you  can  afford  to  have 
multi-purpose  PET  expansion  now! 

BETSI  INTERFACE/MOTHERBOARD-KIT 
With  all  components,  one  100  pin  connector,  and 
complete  assembly  and  operating  instructions 

S119 

BETSI     INTERFACE/MOTHERBOARD 
ASSEMBLED  &  TESTED 
With    four    100   pin   connectors,   complete 
assembly  and  operating  instructions,  6-month 
warranty  $165 


BETSI    POWER    SUPPLY 
&  TESTED 


ASSEMBLED 

$34 


See  Betsi  and  its  new  power  supply  at  your  local 
dealer  or  write  directly  to; 

FORETHOUGHT 
PRODUCTS 

87070  Dukhobar  Road  #F 

Eugene,  Oregon  97402 

(503)  485-8575 

ORDERS  NORMALLY  SHIPPED  WITHIN 

24  HOURS/VISA,  MASTERCHARGE 

ACCEPTED 


August  1979  ©  BYTE  Publications  Inc        103 


To  understand  how  this  correspon- 
dence is  figured,  think  of  the  second 
index  in  the  matrix  as  the  destination 
of  the  signal,  and  the  third  index  as 
the  source. 

Suppose  that  we  wanted  to  fill  in 
the  M  matrix  for  1  level  of  systems. 
An  entry  will  be  —1  if  the  corres- 
ponding S  matrix  entry  of  the  next 
higher  level  is  negative,  0  if  the  S 
matrix  entry  is  0,  and  1  if  the  S  matrix 
entry  is  positive.  But  which  is  the  en- 
try in  the  S  matrix  for  level  L-l-1  cor- 
responding to  M(L,J,K)? 

The  answer  is  simple:  M(L,],K) 
corresponds  to  S(L-I-1,K,J).  The 
source  and  destination  indices  are 
simply  interchanged.  If  a  higher-level 
system  gives  a  negative  weight  (of 
any  amount)  to  the  perceptual  signal 
from  a  given  lower-level  system,  it 
sends  a  copy  of  its  output  to  the  com- 
parator of  the  same  lower-level 
system  with  a  negative  (inhibitory) 
sign.  A  negative  connection  factor 
means  that  the  output  of  this  higher- 
level  system  will  subtract  from  the 
contributions  of  other  higher-level 
systems  to  the  lower-level  net 
reference  signal. 


Thus,  once  the  S  matrix  for  the 
next  higher  level  has  been  filled  in,  we 
can  calculate  the  entries  in  the  M 
matrix: 

M(L,J,K)  =  SGN  (S(L  +  1,K,J)) 

where  SGN  is  the  Sign 
function  that  generates  the 
appropriate  1,  0,  or  —1. 

You  may  choose  to  skip  these  pro- 
cedures and  simply  spell  out  each 
connection  one  at  a  time.  My  thought 
in  using  a  general  solution  is  not 
merely  to  save  lines  of  program,  but 
to  point  the  way  toward  expanding 
the  simulation  both  horizontally  (ad- 
ding more  systems  at  each  level)  and 
vertically  (adding  more  levels). 

The  reference  signal  for  level  L, 
system  J,  is  found  by  summing  over 
the  outputs  of  all  systems  of  level 
L-hl,  multiplying  the  output  from 
each  higher-level  system  by  the  ap- 
propriate connection  factor  from  the 
M  matrix: 


N(L+1)-1 

R(L,J)  =  X)        M(L,J,K)xO(L-t-l,K) 


Discover  why 
hundreds  of  PDP-1 1  users 
have  turned  to  us 
for  Pascal. 


They're  in  process  control.  In 
data  base  management.  In  educa- 
tion, research  and  communica- 
tions. Running  on  LSI-1 1's,  PDP- 
1 1/70's  and  everything  in  be- 
tween. RSTS/E,  RTI 1,  RSXor  IAS  — 
it  makes  no  difference,  they  praise 
our  Pascal. 

Because  they  all  have  one  thing 
in  common.  A  desire  to  get  more 
from  their  PDP-1 1  than  another 
language  —  or  another  Pascal  — 
can  provide. 

We've  captured  the  elegance  of 
Pascal  in  a  real  world  compiler  It 
converses  directly  in  machine  lan- 
guage, giving  remarkable  execu- 
tion speed  and  efficient  memory 
use.  It  features  straight-forward 


program  structure, 
uncluttered  syntax, 
and  other  advantages  of 
full  standard  Pascal. 

But  there's  more,  in  the  form  of 
real-time  extensions.  15  digit  (dou- 
ble precision)  arithmetic.  In-line  as- 
sembly code.  I/O  hardware  ac- 
cess. FORTRAN  interface.  Direct- 
access  files.  Overlays.  Plus  others. 
There's  even  an  interactive  sym- 
bolic debugger 

Reliability?  Introduced  in  1975, 
we're  at  over  400  sites  now.  We 
guarantee  stated  performance  and 
provide  1  year  of  follow-up  sup- 
port. Give  us  a  call;  we  have  a 
demo  library,  manuals,  and  bench- 
mark, ready  for  your  inspection. 


minicomputer 
Siu  <3  inc. 


2340  SW  Canyon  Road 
Portland,  Oregon  97201 
(503)  226-7760 
TWX  910-464-4779 

PDP.II.LSI-11,  PDP-11/70,  RSTS/E,  RT11,  RSX,  and  IAS  are  Irademarks  of  Digital  Equipment  Corporation 


Distributors; 

Australia;  Sydney;  Network  CompLJter  Services. 

290  3677 

Canada;  Vancouver;  Valley  Software. 

(6041524-9741 

England;  Stafford;  Hourds  Computing  Ltd. 

0785  44221 

Japan;  Tokyo;  Rikel  Corporation,  03-345-141 1 


To  complete  this  general  model  we 
need  only  calculate  the  error  signal  E 
and  the  output  signal  O.  The  required 
slowing  factor  and  the  error  sensitiv- 
ity are  put  in  the  output  function. 

E(L,J)  =  R(L,J)  -  P(L,J) 

0(L,])  =  0(L,J)  +  K(L)  X 
(G(L)x  E(L,J)  - 
0(L,J)) 
where  K(L)  is  the  slowing  fac- 
tor for  all  systems  of  level  L 
(see  part  2),  and  G(L)  is  the 
error  sensitivity  for  all  systems 
of  level  L. 

Top  and  Bottom  of  the  Model 

We  do  not  have  a  complete  control 
system  at  the  top  of  this  hierarchy 
where  we  will  be  injecting  reference 
signals  for  the  highest  complete  level. 
Therefore  we  designate  those  signals 
as  (in  this  case)  0(3,I),  output  signals 
from  3  imaginary  level-3  systems  (us) 
indexed  by  I  =  0  (X  force),  1  (Y 
force),  or  2  (tone).  The  M  matrix  for 
level  2  is  set  up  so  that  M(2,1,I)  is  1,  I 
running  from  0  to  2;  this  establishes 
connections  from  each  level-3  output 
to  1  corresponding  level-2  reference 
input.  All  other  entries  are  left  at  0 
(my  North  Star  BASIC  zeros  arrays 
when  they  are  first  dimensioned). 

At  the  bottom,  the  output  signals 
0(1,I)  are  supposed  to  create  muscle 
tensions  that  affect  3  input  quantities; 
the  amount  of  stretch  in  the  tendon 
attached  to  each  muscle.  To  avoid 
treating  a  special  case,  we  will 
designate  these  input  quantities  as 
"level  0  perceptual  signals,"  P(0,I). 
The  value  of  each  input  quantity  is 
found  by  adding  the  magnitude  of  the 
corresponding  output  to  the  compo- 
nent of  a  disturbance  that  acts  along 
the  length  of  the  associated  muscle. 
The  value  of  the  input  quantity  P(0,I) 
represents  the  net  stretch  in  a  tendon 
created  by  the  muscle  contraction  and 
this  component  of  the  disturbance  as 
they  act  together. 

The  level-1  S  matrix  simply  con- 
nects each  input  quantity,  multiplied 
by  1,  to  its  respective  input  function. 
Thus,  we  set  S(0,I,I)  =  1,  for  I  =  0, 
1,  and  2.  All  other  entries  in  this 
matrix  are  0. 

The  geometry  of  the  muscles  is  ad- 
justable. Since  setting  up  this 
geometry  is  the  opening  phase  of  the 
BASIC  program,  we  will  take  a  quick 
run  through  this  program  and  discuss 
the  muscle  setup.  See  figure  15  to  help 


104        August  1979  ©  BYTE  Publications  Inc 


Circle  293  on  inquiry  card. 


.TRS-80  BOUTIQUE 


Intro- 
>ducing| 

"WORDP II" 

The  TRS-80  Word 

Processing  System 

that  really  does  the  job! 


If  you've  been  looking  tor  a  true  word 
processing  capability  for  your  TRS- 
80  ...  STOP!  WORDP  II  is  it! 

WORDP  II  allows  you  to  enter,  edit, 
and  print  various  amounts  of  text 
(witti  rigint  margin  justification)  in  one 
program.  Tfie  EDIT  program  permits 
addition,  insertion,  and  deletion  of 
whole  lines  and  ctiaracters  within 
lines.  The  TYPESET  program  fills  and 
right  justifies  paragraphs  auto- 
matically. 

Otherfeatures  include:  indent, 
center,  right  justify  non-paragraph 
text,  count  and  label  pages  by 
number  or  without  headings,  and 
lots  more. 


SPECIAL  INTRODUCTORY  PRICE 


$75.00 


Send  SI  for  operating  manual  -  see 

what  the  system  will/will  not  do  before 

you  buy! 


DEALER  INQUIRIES  INVITED 


(714)  774-1270 
AJA  SOFTWARE 

P.O.  Box  2528  •  Orange,  CA  92669 


Improve  TRS~80 

performance 

with  new  DOS^ 

Enjoy  the  wizardry  of  your  TRS-80  to  its  fullest:  maximize  and 
expand  all  of  its  magical  capabilities  with  the  new  DOS+,  Just  look  at 
the  capabilities  you  can  evoke. 

Modifications,  corrections,  and  enhancements  to  Radio  Shack's 
TRSD0S2.1. 

•  A  Basic  REFerence  command  for  variables  and  numbers. 

•  A  super-fast  machine  language  RENUM  program  execu- 
table under  BASIC. 

•  A  built  in  kevboard-debounce  routine. 

•  A  print  screen  option  under  DOS  or  BASIC  to  your  line  printer. 
Simply  press  JKL  keys. 

•  Newcopy  commands  for  backup,  allows  you  to  copy  from  drive 
to  drive  keeping  the  same  filespec. 

•  Execution  of  DOScommands  while  in  BASIC. 

•  New  BASIC  scrolling  and  invocation  commands  and  more. 

•  Apparat'sown  SUPERZAP,  a  Hex  dump  utility  to  examine  or 
or  modify  disk  or  memory  locations, 

•  Modified  EDITOR  ASSEMBLER  with  Disk  I/O  and  new  cross 
reference  feature. 

•  A  super-fast  machine  language  DISASSEMBLER  program. 

•  A  LOAD  MODULE  for  transferring  machine  tapes  to  disk, 

•  Fasterdisk  access, 

•  Level  I  ROM  relocated  in  Level  II  RAM. 

•  The  capability  of  storing  and  retrieving  Level  I  programs  on  Disk, 

•  An  improved  DISKDUMP  program. 

•  A  DIRCHECK  program  to  test  a  directory  &  list/display  the 
contents  in  alphabetical  order  with  extensions. 

You  don't  have  to  pull  a  rabbit  out  of  a  hal , . .  Send  S99  for  the 
Apparat/MTl  New  DOS-h  (on  diskette).  See  all  the  magic  unfold 
before  your  eyes. 

INTRODUCTORY  SPECIAL 
NEW  DOS+  and  the  very  Best  of  Apparat's  disk  utility  programs 
S99.00(aS250.00value). 

To  Ofder  yoin  diskette  of  tricks,  wnie  or  call  one  of  our  dealers. 

Apparat  Inc.,  6000  E.  Evans  Ave.,  BIdg  2.  Denver,  CO  80222, 

303-758-7275 
Microcomputer  Technology  Inc.,  2080  S.  Grand  Ave.. 

Santa  Ana,  CA  92705,  7 1 4-979-9923 


COMPUTER  DEALER  CO-OP 
5082  SHIRLEY  DRIVE,  LA  PALMA,  CA  90623 

(714)  979-9925 


Circle  50  on  inquiry  card. 


BYTE  August  1979         105 


Circle  161  on  inquiry  card. 


TO  H AYDEN 

FOR  YOUR 

LANGUAGE 

NEEDS... 


New!  APL:  An  Introduction  (Peelle) 
This  workbook/textbook  offers  a 
problem-solving  approach  to 
learning  computer  programming 
in  APL.  #5 ;  220.  SH.50 

COBOL  WITH  STYLE:  Pro- 
gramming Proverbs  (Chmura  & 
Ledgarcl)  Covers  structured 
COBOL,  programming,  and  how 
to  use  the  top  down  approach  with 
COBOL.  #578  i -4,  SG.OS 

Meu'i  FORTRAN  WITH  STYLE: 
Programming  Proverbs  (Ledgard 
&  Chmura)  Programming  style 
guide  that  conforms  to  the  new 
FC:)RTRAN  77.  #5eH2-G.  $(x93 

New!  Z-80  AND  8080  ASSEMBLY 
LANGUAGE  PROGRAMMING 

(Spracklen)  An  extensive  introduc- 
tory look  at  assembly  language 
programming  for  the  8()80  and  Z  80 
processors.  #5  / evo.  S7.05 

Sew!  PASCAL  WITH  STYLE: 
Programming  Proverbs  (Ledgard 
&Nagin)  A  style  guide  specially 
written  for  PASCAL  users  and  how 
to  use  the  top  down  approach  with 
PASCAL.  #.S124  7  Sfi.n.S 

New!  BASIC  FROM  THE  GROUND 

UP  (Simon)  Explores  computers 
and  the  BASIC  language  in  a 
simple  direct  way,  without  relying 
on  a  heavy  mathematical  back- 
ground. #3700-1.  SH.95 

Available  at  your 

local  computer 

store! 

[Tri  Hayden  Book 
'-*-'  Company,  Inc. 

50  Essex  Street, 
Rochelle  Park,  NJ  07662 


visualize  how  everything  works. 
Figure  16  is  the  same  system,  more 
closely  representing  l:he  organization 
of  the  brain. 

The  Simulator 

Muscle  angles.  After  the  dimension 
statements  and  the  statements  that  set 
slowing  factors  and  error  sensitivities 
for  each  level  have  been  called,  the 
program  calls  a  subroutine  that  asks 
for  the  angle  at  which  each  of  the  3 
muscles  is  to  be  set  (in  degrees).  You 
can  use  30,  150,  and  270  degrees  (for 
equal  spacing).  There  is  nothing  to 
prevent  the  choice  of  any  angles  you 
like,  although  you  should  draw  a 
diagram  to  determine  the  effect  on  the 
system.  It  is  hard  to  create  a  force  in  a 
direction  in  which  there  is  no  compo- 
nent of  force  from  any  muscle. 

Sensory  weightings.  Lines  9  to  15 
organize  the  perceptions  of  this  sys- 
tem, and  thus  organize  its  behavior. 
For  values  of  I  from  0  to  2,  all  3  levels 
of  sensory  matrix  are  set  up.  You  can 
now  see  how  X  and  Y  forces  are  sens- 
ed. The  weights  for  level  2,  system  0, 
correspond  to  the  cosine  of  the  angle 
between  the  positive  X  axis  and  the 
angle  of  each  muscle.  Those  for  level 
2,  system  1,  correspond  to  the  sine  of 
the  same  angles.  Each  input  function 
is  weighting  the  perceptual  signals 
from  the  muscles  according  to  the 
component  of  force  that  is  aligned 
with  the  direction  being  sensed.  The 
tone  system,  level  2,  system  2  adds 
the  signals  together  to  yield  a  total- 
force  signal. 

Motor  weightings.  Lines  19  to  23 
use  the  already  entered  values  of  the  S 
matrices  to  create  the  connection 
matrix  M.  The  sign  function  selects 
the  sign  that  will  preserve  negative 
feedback. 

Highest-level  reference  signals.  In 


line  24,  the  program  calls  a  sub- 
routine that  asks  for  3  reference 
signals:  one  designating  the  amount 
of  X  force,  another  designating  the 
amount  of  Y  force,  and  a  third  des- 
ignating the  sum  of  forces,  or  muscle 
tone.  Positive  or  negative  numbers 
are  allowed.  A  real  nervous  system 
cannot  handle  negative  frequencies, 
but  the  same  effect  can  be  created  by 
suitable  use  of  inverters  so  that  one 
(positive)  frequency  means  a  positive 
quantity  and  another  (also  positive) 
frequency  means  a  negative  quantity. 
In  reality  there  would  be  6  systems  of 
level  2  in  this  4-quadrant  system. 

I  have  set  up  level  1  to  behave 
realistically  like  a  muscle  control 
system;  neither  negative  signals  nor 
negative  forces  can  be  produced. 

Disturbance.  At  line  25,  the  pro- 
gram calls  a  subroutine  which  asks 
for  the  amount  and  direction  of  a 
constant  disturbance.  A  disturbance 
might  be  created  by  seizing  the  place 
where  the  3  muscles  join,  moving  it, 
and  holding  it  in  the  new  position. 
Despite  the  fact  that  the  control 
systems  are  neither  detecting  nor  con- 
trolling position,  arbitrary  movement 
of  this  junction  in  space  will  stretch  or 
relax  the  muscles,  creating  changes  of 
force  due  to  the  spring  constants  of 
the  muscles.  Therefore  it  is  rea- 
sonable to  suppose  that  a  force  distur- 
bance can  be  created,  one  which  pro- 
jects into  the  direction  of  each  muscle 
according  to  the  cosine  of  the  angle 
between  the  disturbance  vector  and 
the  axis  of  the  muscle. 

Calculating  the  behavior.  Lines  29 
through  37  call  a  subroutine  that  ac- 
tually does  the  calculation  of  signals 
in  all  6  control  systems.  You  will 
notice  3  nested  FOR-NEXT  loops. 
The  outer  2  loops  cause  the  lower- 

Text  continued  on  page  111 


Figure  15:  The  2-level  hierarchy  simulated  in  this  article.  Three  level-1  systems  each 
control  the  amount  of  tension  in  1  muscle,  as  represented  by  the  3  level-1  perceptual 
signals.  Copies  of  these  3  perceptual  signals  reach  all  3  level-2  systems,  where  they  are 
weighted  and  summed  so  as  to  represent  the  X  component  of  muscle  force  (P(2,0)),  the 
Y  component  of  muscle  force  (P(2,l)),  and  total  muscle  force  or  muscle  tone  (P(2,2)). 

Each  second  level  system  sends  an  amplified  and  smoothed  version  of  its  error  signal 
as  an  output  signal  to  all  3  lower-level  systems.  Each  output  signal  splits  into  3  identical 
branches,  1  for  each  level-1  system.  When  a  branch  reaches  a  level-1  comparator,  it 
may  be  connected  directly  or  through  an  inverter  before  being  summed  with  other 
reference  inputs.  There  is  no  other  weighting  of  output  signals.  If  necessary,  an  inverter 
is  used  to  preserve  negative  feedback  for  a  particular  path. 

Each  level-1  system  amplifies  and  smooths  its  error  signal  to  make  an  output  signal 
reaching  just  1  muscle. 

A  higher-level  system  determines  the  reference  signals  for  X,  Y,  and  total  force.  These 
are  specified  by  the  operator  of  the  simulator.  All  systems  correct  their  own  errors 
simultaneously. 


106        August  1979  ©  BYTE  Publicalions  Inc 


August  1979  ©  BYTE  Publications  Inc        107 


(PERCEPTUAL    SIGNALS) 
X    Y    T 


MIDBRAIN 


(REFERENCE    SIGNALS) 
X     Y     T 


MOOJ     (lOl)     (l°2J      (no)     ("l)     ("^)     ('2°)     V'^O 


..        I        j.  1  j.        j.        /. 

^    COMPARATOR     |-^      ^    COMPARATOR 


'^ 


COMPARATOR 


-  DORSAL   ROOTS. 
TO    SPINAL   CORD 


LEVEL 
2 


LEVEL 
I 


Figure  16:  Topological  transform  of  figure  15  shows  how  control  systems  are  arranged  in  the  human  nervous  system,  at  least  accor- 
ding to  some  cybernetic  theoreticians.  The  major  difference  from  figure  15  is  that  all  sensory  functions  are  lumped  together  at  each 
level,  and  comparison  and  output  functions  are  also  lumped  together.  The  S  and  M  matrices  are  represented  in  a  nervous  system  as 
synaptic  connections,  the  weighting  of  which  is  determined  by  the  number  of  branches  (from  one  to  hundreds)  that  form  just  as  a 
nerve  fiber  reaches  the  next  cell  body.  The  sign  of  a  weighting  is  determined  by  whether  or  not  a  Renshaw  cell  (specialized  to  pro- 
duce inhibition)  is  interposed.  A  collection  of  comparators  and  output  functions  is  called  a  motor  nucleus.  For  level  2  and  higher, 
the  branches  of  perceptual  signals  that  cross  over  and  enter  a  motor  nucleus  are  called  collaterals. 


108        August  1979  ©  BYTE  Publications  Inc 


Wondering  which  memory 
is  best  for  you? 


bQ/e  2*  offers  the  following  products 
to  the  S'lOO  market  at  the  industry's 
lowest  prices: 


tMHMMMI'WMH 


B  ^^^M^^W  .^^■■^•W  ^  r^^W^n    W^^^^ff       rW^tvrl    ^^^^^T.  f  ^^^^^W    ^^^^^ff 

^    ^^^^^M         ^^^^^«     .J    ^^^^^^J         ^^U^Ut  ^^^^^^^       ^^^^^^    ^     '^^^^^^       ^^^^^^^ 

'  ^^W^^«    ^^WWW  B  ^^^W^W    ™^W^*-       ^n^^^^  .^^^^tK  ,^^^^^^^ff   .^^^^^ff 


■  ^^^^^^^    ^^^^^^^  ~  ^^^^^^^    ^^^u*^^  ^^^u^u    ^^^^^^^^   ^^^^^^^ 


SK  Static  Memory  Board 

This  8K  board  is  available  in  two  versions.  The  8KS-B  operates  at  450ns  for  use  with 
8080  and  8080A  microprocessor  systems  and  Z-80  systems  operating  at  2MHz.  The 
8KS-Z  operates  at  250ns  and  is  suitable  for  use  with  Z-80  systems  operating  at  4MHz. 
Both  kits  feature  factory  fresh  21 02's  (low  power  on  8KS-B)  and  includes  sockets  for 
all  IC's.  Support  logic  is  low  power  Schottky  to  minimize  power  consumption.  Address 
and  data  lines  are  fully  buffered  and  4K  bank  addressing  is  DIP  switch  selectable. 
Memory  Protect/Unprotect,  selectable  wait  states  and  battery  backup  are  also 
designed  into  the  board.  Circuit  boards  are  solder  masked  and  silk-screened  for  ease 
of  construction.  These  kits  are  the  best  memory  value  on  the  market!  Available  from 
stock...  8KS-B    $125  (assembled  and  tested  add  $25.00) 

8KS-Z    $145  (assembled  and  tested  add  $25.00) 


16K  Static  Memory  Board 

Base  2  can  now  offer  the  same  price/performance  in  a  1 6K  static  RAM  as  in  its  popular 
BK  RAM.  This  kit  includes  8K  bank  addressing  with  4K  boundary  address  setting  on 
DIP  switches.  This  low  power  unit  provides  on-board  bank  selection  for  unlimited 
expansion ...  No  MUX  board  required.  Using  highest  q  uality  boards  and  components 
we  expect  this  kit  to  be  one  of  the  most  popular  units  on  the  market.  Available  in  two 
speed  ranges,  the  1 6KS-B  operates  at  450ns  while  the  1 6KS-Z  operates  at  250ns. 

16KS-B     $275.00  (assembled  and  tested) 

16KS-Z     $300.00  (assembled  and  tested) 


Z-80  CPU  Board 

Our  Z-80  card  is  also  offered  in  two  speed  ranges.  TheCPZ-1  operates  at  2MHz  and 
the  CPZ-2  operates  at  4MHz.  These  cards  offer  the  maximum  in  versatility  at 
unbelievably  low  cost.  A  socket  is  included  on  the  board  for  a  2708  EPROM  which  is 
addressable  to  any  4K  boundary  above  32K.  The  power-on  jump  feature  can  be 
selected  to  address  any  4K  boundary  above  32K  or  the  on-board  2708.  An  On-board 
run-stop  flip- flop  andoptional  generation  of  Memory  Write  allows  the  board  to  run  with 
or  without  a  front  panel.  The  board  can  be  selected  to  ru  n  in  either  the  8080  mode,  to 
take  advantage  of  existing  software,  or  in  the  Z-80  mode  for  maximum  efficiency.  For 
use  in  existing  systems,  await  state  may  be  added  to  the  Ml  cycle,  Memory  request 
cycle,  on-board  ROM  cycle,  input  cycle  and  output  cycle.  DMA  grant  tri-states  all 
signals  from  the  processor  board.  All  this  and  more  on  too  quality  PC  boards,  fully 
socketed  with  fresh  IC's.  CPZ-1     $110     CPZ-2    $125 


S-lOOfor  Digital  Group  Systems 

This  kit  offers,  at  long  last,  the  ability  to  take  advantage  of  S-1 00  products  within  your 
existing  DigitalGroup  mainframe.  Once  installed,  up  to  four  S-1 00  boards  can  be  used 
in  addition  to  the  existing  boards  in  the  D.G.  system.  The  system  includes  an 
"intelligent"  mother  board,  ribbon  cables  to  link  existing  D.G.  CPU  to  the  DGS-100 
board  and  a  power  wiring  harness.  The  DGS-1 00  is  designed  to  fit  in  the  5-3/4"  x  1 2" 
empty  areain  the  standard  D.G.  cabinet.  It  may  seem  expensive  but  there's  a  lot  here! 
End  your  frustration!     DGS-100     $250.00 


bo/e 


2 


inc. 


Send  for  more  details  on  these  products.  Get  on  our  mailing  listfor 
information  on  more  soon  to  be  announced  products  at  factory-direct 
prices  from  BASE  2.  Why  pay  more  when  you  can  get  the  best  at 
these  prices??? 

P.O.  Box  3548  •   Fullerton,  Calif.  92634 

(714)992-4344 

CA  residents  add  6%  tax 

MC/BAC  accepted  •  FOB  —  U.S.  destination 


Circle  29  on  inquiry  card. 


BYTE  AuRusl  1979         109 


Circle  190  on  inquiry  card. 


Thousands  of  users  know  the 
Ithaca  Audio  Simple  Upgrade™  as 
the  best  memory  expansion  available 
—  and  with  good  reason. 

Our  clear,  concise,  step-by-step 
instructions  and  illustrations  make 
upgrading  a  snap.  Jumpers  are 
packaged  just  as  they  appear  in  the 
diagrams,  no  hunting  for  the  correct 
part. 

Fully-tested  RAMs  and  prepro- 
grammed shunts  provide  a  kit  that 
works  the  "first  time."  In  fact,  a 
Simple  Upgrade  is  the  only  memory 
expansion  that  requires  no  cutting  or 
customizing  to  install. 

Each  kit  has  a  100%  guarantee;  if  a 
part  ever  fails  we  replace  it  absolutely 
free.  No  other  manufacturer  has  the 
confidence  to  offer  that  kind  of  war- 
ranty and  support. 

Now  the  best  gets  even  better:  the 
Simple  Upgrade  is  just  $119.00. 

The  full  line  of  Upgrades  is  avail- 
able nationwide  at  Computerlands, 
Byte  Shops  and  Independent  compu- 
ter retailers. 

For  the  name  of  the  dealer  nearest 
you,  contact: 

ITHACA 
AUDIO 

P.O.  Box  91 

Ithaca,  New  York  14850 

(607)  257-0190 

TRS-80  is  a  registered  trademark  of  Tandy  Corp. 

Apple  II  is  a  registered  trademark  of  Apple  Computer  Inc. 

Sorcerer  is  a  registered  trademark  of  Exidy  Inc. 


u 

S<3,I,I)=1 

15 

NEXT  I 

16 

REM 

17 

REM 

18 

REM 

19 

FOR  L=1/'T0 

2 

20 

FOR  1=0  TO 

2 

21 

FOR  J=0  TO 

2 

Listing  3:  North  Star  BASIC  simulation  of  a  3-muscle  system.  The  muscles  have  3 
operations  they  are  to  perform:  movement  in  the  X  direction,  movement  in  the  Y direc- 
tion, and  tone  control.  A  sample  run  of  the  simulator  is  shown  in  listing  4.  The  exclama- 
tion point  is  used  as  an  abbreviation  for  the  PRINT  statement. 

1  on,  P(2,2),R(2,2),E(2,2),0(3,2),S(3,2,2),M(2,2,2),A(3),K(2) 

2  DIM  GC2) 

3  G(1)=10\  K(1)=.07\  G(2)=5D\  KC2)=.01 

4  P=3. 1415927/180 

5  GOSUB  99\  REM        (SET  UP  MUSCLE  GEOMETRY) 

6  REM  ************************* 

7  REM  SET  UP  SENSORY  WEIGHTINGS 

8  REM  ************************* 

9  FOR  1=0  TO  2 

10  S(1,I,I)=1 

11  S(2,0,I)=  COS(A(I)) 

12  S<2,1,I)=  SIN(A(I)) 

13  S(2,2,I)=1 


************************* 

SET  UP  MOTOR  WEIGHTINGS 
************************* 


22  M(L,I,J)=SGH(S(L+1,J,I)) 

23  NEXT  J\  NEXT  I\  NEXT  L 

24  GOSUB  109\  REM     (SET  UP  REFERENCE  SIGNALS) 

25  GOSUB  116\  REM     (SET  UP  DISTURBANCE) 

26  REM  ************************* 

27  REM  CALCULATE  SYSTEM  BEHAVIOR 

28  REM  ************************* 

29  !\FOR  Q=1  TO  5 

30  FOR  J3=0  TO  1 

31  L=2\  GOSUB  50\  REM   CALCULATE  SYSTEMS  AT  LEVEL  L 

32  FOR  J2=0  TO  1 

33  L=1\  GOSUB  50 

34  FOR  1=0  TO  2 

35  P(0,I)=0(1,I)+D*C0S(A(I)-A(3)) 

36  NEXT  n  NEXT  J2\  NEXT  J3 

37  GOSUB  69\  REM    (PRINT  TABLE  OF  VALUES) 

38  NEXT  Q 

39  !"(A)rJGLE?  (R)EFS?  (D)IST?  (C)ONT?  (P)RIflT  MATRICES?  " 

40  INPUT  "",AS 

41  IF  A$<>"A"  THEN  42\  GOSUB  102\  GOTO  29 

42  IF  AS<>"R"  THEN  43\  GOSUB  109\  GOTO  29 

43  IF  A$<>"D"  THEN  44\  GOSUB  116\  GOTO  29 

44  IF  A$<>"C"  THEN  45\  GOTO  29 

45  IF  AS<>"P"  THEN  46\  GOTO  76 

46  !"  ????  "\     !\  GOTO  39 
******************************** 

CALCULATIONS  FOR  LEVEL  L  SYSTEMS 
******************************** 

2 


47  REtl 

48  REM 

49  REn 

50  FOR  J=0  TO 

51  v=n 

52  FOR  K=0  TO  2 

53  V=V+P(L-1,K)*S(L,J,K) 

54  NEXT  K 

55  IF  L=1  AND  V<0  THEN  V=0 

56  P(L,J)=V\  V=0 

57  FOR  K=0  TO  2 

58  V=V+0(L+1,K)*M(L,J,K) 

59  NEXT  K 

60  R(L,J)=V\  V=0(L,J) 

61  E(L,J)=R(L,J)-P(L,J) 

62  V=V+K(L)*(G(L)*E(L,J)-V) 

63  IF  L=1  AND  V<0  THEN  0(L,J)=0  ELSE  0(L,J)=V 

64  NEXT  J 

65  RETURN 

66  REfi         *********************** 

67  REtl  DATA  LISTING  SUBROUTINE 

68  REM         *********************** 

69  !\!  "ITERATION  #  ",;;2I,Q,"     

70  FOR  J=2  TO  1  STEP  -1, 

71  !\!  "LEVEL  ",5!2l  ,J  ,;:#7F2 

72  FOR  1=0  TO  2\!"       ",R(J,I)/*        " ,\    NEXT  I 

73  !\FOR  1=0  TO  2\!"  ",P(J,I),"    ",0(J,I),"  " ,\    NEXT  I 

74  ! \  NEXT  J 


110        August  1979  ©  BYTE  Publications  Inc 


Circle  40  on  inquiry  card. 


Text  continued  from  page  106: 
level  system  to  iterate  twice  for  every 
iteration  of  the  higher-level  system. 
This  proves  to  be  an  exceedingly 
useful,  easy  way  to  stabilize  the 
2-level  system.  (I  have  also  tried  this 
with  a  3-level  system,  and  it  worked 
just  as  well.)  I  have  no  formal  ra- 
tionale for  why  this  works;  informal- 
ly, it  seems  to  be  a  good  idea  to  let  the 
lower-level  system  correct  most  of  its 
error  before  the  higher-level  systems 
take  their  own  errors  seriously. 

The  inner  loop,  line  35,  simply 
calculates  the  values  of  the  input 
quantities  for  the  level-1  systems, 
using  the  angles  of  the  muscles  and  of 
the  disturbance.  This  is,  in  effect,  the 
simulation  of  the  environment  (the 
muscles  are  in  the  environment  of  a 
neural  control  system). 

At  line  37  a  routine  is  called  which 
prints  out  the  signals  for  all  systems; 
the  reference  signal   on   1  line,   the 


perceptual  signal  to  the  lower  left  of 
it,  and  the  output  signal  to  the  lower 
right  for  each  system.  Line  38  closes 
the  iteration  loop;  5  iterations  are 
called  for. 

Lines  39  through  46  ask  what  ac- 
tion is  to  be  taken  after  5  iterations. 

Calculation  subroutine.  Lines  50  to 
65  calculate  the  signals  for  each 
system.  The  V  that  occurs  here  and 
there  is  simply  a  way  to  reduce  the 
number  of  times  a  subscript  has  to  be 
calculated.  The  perceptual  signal  is 
calculated  first,  then  the  reference 
signal,  the  error  signal,  and  the  out- 
put signal,  for  each  system  of  level  L. 
The  level  is  set  at  lines  31  and  33  by 
the  calling  program.  Line  62  contains 
the  slowing  routine  which  appeared 
in  part  2.  Lines  55  and  63  determine 
whether  or  not  level  1  is  being 
calculated;  if  it  is,  the  perceptual  and 
output  signals  are  prevented  from  go- 
ing negative. 


75  !\ 

76  !\ 

77  FO 

78  !" 

79  FO 
SO  !" 

81  FO 

82  i; 

83  NE 
SA  ME 

85  ! 

86  NEXT  L 
i!"I10T0R  f, 
)R  L=1  TO 
'LEVEL  ",'/, 
^R  J=0  TO 


RETURN 
!"SCflSORY 
R  L=1  TO 
LEVEL  ",'/, 
R  J=0  TO 

It 

R  K=0  TO 
6F2,S(L,J 

!!T  K 
XT  J 


87  !\! 
86  For 

89  !"l 

90  For 

91  !" 

92  FO 
9 
9A  NE 

95  NE 

96  ! 

97  NE 

98  !  \ 

99  RE 

100  R 

101  R 

102  ! 


KATRIX"\  ! 
2 

II, L 
2 

2 


ATRIX"\! 
2 

II, L 
2 


10 

104  A 

105  R 

106  R 
107 
108 
109 
110 
111 
112 
113  R 
1U  R 

115  R 

116  ! 
117 
118 
119 


R  K=0  TO 

;;6F2,r'i(L, 

XT  K 
XT  J 

XT  L 

GOTO  39 
H 

EM 
EM 

\!"nUSCLE 
MPUT1  "^1 
(0)=A(0)* 
ETURN 
Eh 
EM 
El^i 

\!"REFERE 
MPUT1  "X: 
NPUT1  " 
ETURN 
EM 
EM 
EM 

\!  "DISTU 
flPUTI  "HA 
(3)=A(3)* 
ETURN 


2 


********************** 

SET  UP  MUSCLE  GEOMETRY 

********************** 
ANGLES:" 
\  ",A(0)\  iriPUTI  "  t!2\    ",A(1)\  IMPUT1 
P\  A(1)=A(1)*P\  AC2)=A(2)*P 

*********************** 
SET  UP  REFERENCE  SIGNALS 
************************* 
NCE  SIGNALS:" 

",0(3,0)\  INPUT1  "   Y:  ",0(3,1) 
TONE:  ",0(3,2) 

************************** 
SET  UP  DISTURBANCE  &  ANGLE 
************************** 

RBANCE:" 

GNITUDE:  ",D\  INPUT1  "   ANGLE:  ",A(3) 

P 


r/3\  ",A(2) 


READY 


(S^ 


HAS  IT! 


Texas 
Instruments 

TI-99/4 


Home  Computer 

•  26  K  RAM  extended  Tl  BASIC. 

■  16  color  graphics,  and  music  and  sound  effects. 

•  High  quality  13"  color  monitor 

•  16  K  RAM  user  memorv. 

CTC'SDISCOUNTPRICEFORTHECOMPLETE 
SYSTEM  CONSOLE  &  13"  COLOR  MONITOR 

$1099 

Price  subject  to  change  witfiaut  notice.  Refunds  guaranteed. 


CTC  The  Computer  People 

San  Diego's  largest  Discount  Computer  &  Calculator 
Store.  5560  Ruffin  Road,  San  Diego,  CA  921 23 

PiBBta  ship  ma  thfl  following  merchondiia. 
Tl  &  HP  CALCULATORS 


Tl-Programme 

HexOclal  Calculator 

S  49.95S 

TI-58C 

99.95  S 

TI.59 

programmable  mag  cards 

219.95! 

TI.50 

slimline  scientitic 

33.95 ! 

TI-5025 

printing  handheld 

G9.95  S 

TI-5225 

business  desktop 

179.95  S 

TM025 

5  function  w/memory 

10.95  $ 

TIIOOO 

5  function 

8.95  S 

Spilling  B 

electronic  spelling  aid 

25.95  S 

Speak  &  Spsll 

spelling  aid  that  talksll 

59.95  S 

HP33E 

76.95  S 

HP-38E 

programmable  business 

98.95  % 

HP-92 

desktop  business 

399.95  S 

HP-67 

361.95  S 

HP97 

597.00  S 

Tl  HOME  COMPUTER  PRODUCTS 

PHC004U     TI-99/4  Home  Computer  S1099.00  t. 

PHA2000     Oual  Cassette  Cable  E.9S  s. 

PHP1100      Remote  Controls  (Pairl  29.95  S_ 

PHP1S0O      Speech  Symhesizer  149.95  $  _ 

COMMAND  MODULES 

PHM3000     Diagnostic 

PHM3001     Demonstration 

PHM3O02     Early  Learning  Fun 

PHM3003     Beginning  Grammar 

PHM3004     Number  Magic 

PHM3005     VldecGraphs 

PHM3Q06     Home  Financial  Decisions 

PHM3007     Household  Budget  Management 

PHM3003     Video  Chess 

PHM3009     Football 

PHM3010     Physical  Fitness 

TOTAL  S 

Shipping,  add  3%  S 

Cal.  residents  add  6%  tax  $ 

Amount  enclosed  S 

(check  or  money  order) 

(Credit  Cards  for  Sales  of  1700  or  less) 

Charge  to  my     □  VISA     □  MASTER  CHARGE 

Acct  # Bank  « Exp.  Date   — 

Name 


29.95  S. 

89.95  s_ 

29.95  S_ 

29.95  S_ 

19.95  S. 

19.95  S_ 

29.95  S. 

44.95  S. 

69.95  S. 

29.95  S. 

29.95  S. 


Street  or  P.O.. 
\  City 


.  State - 


.Zip_ 


August  1979  ©  BYTE  Publications  Inc        111 


Listing  4:  A  sample  session  with  the  simulator  in  listing  3.  When  the  simulator  is  in- 
itialized, the  user  is  allowed  to  set  up  several  values:  the  3  muscle  angles,  the  reference 
signals,  and  the  disturbance  magnitude  and  angle.  For  each  iteration  the  values  for  level 
1  and  level  2  are  output  in  the  following  form.  First  the  reference  signal  for  the  par- 
ticular muscle  is  printed.  The  perceptual  signal  is  printed  on  the  next  line,  just  to  the  left 
of  the  reference  signal,  and  the  output  signal  is  printed  to  the  right.  This  is  repeated  for 
every  muscle. 


RUN 


MUSCLE  ANGLES: 

^f^\   30  /;2\  iso  uz\   270 

REFERENCE  SIGNALS: 

X:  -30   Y:  AO   TONE:  175 

DISTURBANCE: 

MAGNITUDE:  0   ANGLE:  0 

ITERATION  #   1     

REFERENCE 
LEVEL       2  PERCEPTUAL     SIGNAL     OUTPUT 

-30.00  SIGNAL  AO.OO      SIGNAL  175.00 

-18.19  -20.76  38.50  20.55  187.25  80.50 

LEVEL   1 

80.29  121.81  39.19 

74.52     73.35    109.52     110. A6     37.83     36.14 


ITERATION  U       2     

LEVEL   2 

-30.00  40.00  175.00 

-32.12  -19.13  45.65  10.29  163.72  61.33 

LEVEL   1 

52.49  90.75  31.91 

47.36     47.64     82.67     82.54     27.25     28.61 


ITERATION  #   3 


LEVEL   2 

-30.00  40.00  175.00 

-29.56     -18.68  37.28      12.56     177.48      67.63 

LEVEL   1 

61.51  98,87  36.40 

55.96  55.93  89.92  89.89  33.67  33.22 


ITERATION  #   4     

LEVEL   2 

-30.00  40.00  175.00 

-29.54     -18.83      40.19      12.57     172.81      65.13 

LEVEL   1 

58.87  96.52  33.73 

53.51  53.52  87.72  87.74  30.57  30.64 


DISTURBANCE: 

HAGNITUDE:  40   ANGLE:  135 


ITERATION  tl       1     

LEVEL   2 

-30.00  40.00 

-72.05       2.40      82.15      -8.75 

LEVEL   1 

59.40  54.60 

52.56  63.30  63.87  16.98 


175.00 
173.67  65.75 


76.90 
57.11  93.27 


Listing  4  continued  on  page  114 


Data  listing  subroutine.  This 
subroutine  is  called  after  every  com- 
plete iteration  of  both  levels.  It  prints 
only  the  perceptual  signal,  reference 
signal,  and  output  signal  from  the  3 
systems  at  each  level. 

Running  the  Program 

After  the  RUN  command  is  given, 
the  program  asks  for  all  adjustable 
parameters  and  then  does  5  itera- 
tions, printing  out  the  values  of  all 
signals  each  time.  It  then  issues  a 
prompting  message,  the  answer  to 
which  determines  what  happens  next. 
The  C  command  means  do  5  more 
iterations.  The  P  command  causes  the 
sensory  and  motor  matrices  to  be 
printed  out.  To  get  an  idea  of  the  time 
scale  on  which  human  Ievel-1  and 
level-2  systems  work,  imagine  that 
each  iteration  takes  about  1/20  of  a 
second.  (If  you  are  looking  for  mental 
exercise,  you  might  adapt  the  plotter 
from  part  2  to  show  the  variables  in 
this  simulation.) 

What  the  Simulator  Shows 

There  has  always  been  a  problem 
in  conventional  models  of  the  brain 
that  have  to  do  with  coordinated  ac- 
tions. The  standard  description  is  that 
something  high  in  the  brain  thinks  of 
a  general  command  like  "push!"  and 
sends  the  equivalent  signals  down- 
ward toward  lower  systems.  Those 
lower  systems  receive  the  general 
commands,  and  elaborate  on  them, 
turning  them  into  more  detailed  com- 
mands at  every  step.  At  the  lowest 
level,  all  of  the  detailed  commands 
converge  into  the  final  common 
pathway,  the  relatively  few  channels 
running  from  the  spinal  cord  to  the 
muscles.  There,  at  last,  the  neural 
signals  are  turned  into  tensions  that 
create  motions  that  create  behavior. 

The  problem  that  nobody  has  ever 
been  able  to  figure  out  is  how  a  sim- 
ple general  command  gets  turned  into 
specific  commands  that  will  have  ef- 
fects that  satisfy  the  general  com- 
mand. Unfortunately,  neurology  is 
full  of  sentences  that  sound  like  ex- 
planations but  are  really  restatements 
of  the  effect  that  is  to  be  explained. 
When  such  sentences  are  uttered, 
they  create  the  impression  that  the 
problem  has  been  solved  and  needs 
no  further  investigation. 

The  simulator  described  here 
shows  a  different  way  for  commands 
to  get  turned  into  actions.  The  com- 
mand that  specifies  an  X  force  doesn't 


112        AugusI  1979  ©  BYTE  Publications  Inc 


it's  on  the  douabnutl 


INTRODUCING    —    LOUMAR    MANAGEMENT    SYSTEMS    SOFTWARE 


di 


programs  to  give  you  a  comprehensive  pacl^age  for  business  management 


The  Loumar  General  Accounting  System  is  a  versatile,  fully  integrated  soltware  package  designed  tor  small  and  medium  sized 
businesses.  It  is  also  suitable  for  CPA's  and  bookkeeping  service  films. 

The  complete  software  system  is  composed  of  four  main  modules:  GENERAL  LEDGER,  ACCOUNTS  RECEIVABLE.  ACCOUNTS 
PAYABLE  AND  PAYROLL.  Each  module  may  be  used  separately  or  in  combination  with  any  other  module.  Supplied  on  disk  as 
run-time  modules.  Source  not  available. 

All  software  is  written  in  CBASIC  II  and  utilizes  the  powerful  CP/M  operating  system. 
General  system  features  include; 

Automatic  posting  to  general  journal  •  Strict  error  detection  •  Report  production  on  demand  •  Consistent  operating  procedures  • 
User  oriented.  No  previous  computer  knowledge  reguired  •  Designed  by  accounting  professionals  •  Comprehensive,  well  pre- 
sented reports  and  manuals  •  Single  or  multiple  client  capabilities. 


HARDWARE  SPECIFICATIONS 

The  end  user's  microcomputer  must  satisfy  the  following  require 

ments: 
48k  RAM 

Dual  floppy  disk  system 

Printer  with  tractor.  All  printing  is  done  in  80  col.  format 
CRT  with  at  least  a  64  character  by  1 6  line  display 
CP/M  and  CBASIC  II 

Write  for  our  brochure  —  Dealerships  still  available 
Contact:  Distributor 

MISSION  CONTROL  •  2008  WILSHIRE  BOULEVARD,  SANTA  MONICA,  CA  90403  •  (213)  829-5137 


PAYROLL:  Up  to  500  employees  -  $550. 

ACCOUNTS  RECEIVABLE:  Up  to  1 000  customers  and  1 000  monthly 

transactions  —  $550 
ACCOUNTS  PAYABLE:  Up  to  1000  vendors  and  1300  monthly 

transactions  —  $400 
GENERAL  LEDGER:  Up  to  200  accounts  with  2000  entries  - 

$450 


Circle  237  on  inquiry  card. 


BYTE  AugusI  1979 


113 


Circle  54  on  inquiry  card. 


Control 
System 

Software 


!ji,:iu<:l«  i:>o' 


•*oot  Ic. 

•  Tttnc  R«*pui< 

Ali  of  tht  ilb«ve 

aoao  or  zaof  -4 

tf^--:       ■      -m 

(s  +  Vi)  (s+1) 
(s+5)^{s  +  50)  (s+100) 


!ll)l[.ll         '<>ME<I1      - 

ill  Ijjl 

:::!:!:!  "■;;!::: 

ITU 
(systems  cJeva 
Sin  the  Mid-    ->■  '•'f 
i  variety  oi  . 
]  performs  custom 
■  programming. 

COMPCO  16  a  distributor  of  At 
( Computer  systems  and  also  sell& 
"General  Rnhotir<;  \.Sl^^^*  f^y^.tptw: 
'Iradcmsrv 


Compco 


Listing  4  continued  from  page  112: 

ITERATION  #   2     

LEVEL   2 

-30.00  AO.OO 

-12.87    -16.21      21. ni      20.17 

LEVEL   1 

66.48  98.91 

59.89      69. 9A      90.08      54.02 


175.00 
180.28      62.52 


26.14 
25.92     50.56 


ITERATION  #   3 


LEVEL   2 

-30.00  40.00  175.00 

-31.36    -17.12     49.55     10.51     167.41     64.63 

LEVEL   1 

58.02  92.26  37.01 

52.07     62.22     87.97     48.88     29.19     58.92 


ITERATION  U       4     

LEVEL   2 

-30.00  40.00  175.00 

-29.97     -16.26      37.42      11.18     175.04      66.18 

LEVEL  1 

61.10  93.62  38.75 

54.44  64.92  88.54  49.97  32.97  61.01 


ITERATION  H       5 


LEVEL   2 

-30.00  40.00  175.00 

-29.55     -IS. 39  39.87      11.75     173.88      64.95 

LEVEL   1 

60.31  93.10  36.81 

53.94  64.25  88.17  49.52  30.93  59.18 


simply  get  partitioned  ainong  the 
muscles.  It  is  a  request  for  a  percep- 
tion, not  a  command  to  act.  The 
system  receiving  this  request  per- 
ceives the  X  force  through  a  con- 
vergent, not  a  divergent  network.  A 
divergent  network  cannot  be  treated 
as  a  function;  a  convergent  network 
can.  When  the  perceived  X  force 
matches  the  reference  X  force,  the 
cause  of  the  perception  must  be  in  one 
of  the  states  that  will,  in  fact,  create 
that  component  of  force  in  the  X 
direction.  There  is  an  infinity  of  dif- 
ferent muscle  tensions  that  could 
create  the  same  component  of  force. 
If  I  were  not  also  specifying  2  other 
functions  of  force,  there  would  be  no 
way  to  predict  the  exact  muscle  ten- 
sions that  would  exist  when  the  X 
control  system  experienced  zero 
error. 

Since  we  are  specifying  3  functions 
of  3  variables,  and  setting  reference 
levels  for  the  value  of  each  function. 


there  is  only  one  state  of  the  muscles 
that  will  allow  zero  error  in  all  3 
systems  at  once.  What  we  have  done, 
in  fact,  is  set  up  an  analog  computer 
for  the  simultaneous  solution  of  3 
equations  in  3  variables. 

This  simulator  shows  that  the 
reference  signals  for  the  lower-level 
systems  do  not  correspond  to  any  one 
output  from  a  higher-level  system. 
Nevertheless,  the  perceptual  signal 
sensed  by  each  higher-level  system 
matches  the  corresponding  reference 
signal.  The  higher  systems  each  sense 
a  different  function  of  the  set  of 
lower-level  perceptual  signals.  In- 
dependent control  is  possible  only 
because  the  functions  represent  in- 
dependent dimensions  of  variation  of 
the  lower-level  world. 

In  the  environment  of  this  2-level 
system,  there  is  no  such  thing  as  X 
force,  Y  force,  or  tone.  There  are 
simply  3  tendons  in  various  states  of 
tension.  I  have  created  the  idea  of 


114        August  1979  ©  BVTE  Publicalions  Inc 


Designing 
Digital  Systems 

Two  programmed  learning  courses: 
hardware  and  software;  theory 
and  application. 


Design  of  Digital  Systems  ■  six  volumes 


ADVANCED  COURSE 
DESIGN  OF  DIGITAL  SYSTEMS 

Six  large-format  volumes  —  each  11 'A  x  8V4". 

CONTENTS 

The  contents  of  Design  of  Digital  Sys- 
tems include: 

Book  1:  Octal,  hexadecimal  and  binaryv; 
number  systems;  representation  of  nega- 
tive numbers;  complementary  systems; 
binary  multiplication  and  division. 

Book  2:  OR  and  AND  functions;  logic 
gates;  NOT,  exclusive-OR,  NAND,  NOR  and 
exclusive  -  NOR  functions;  multiple  input 
gates;  truth  tables;  DeMorgan's  Laws; 
canonical  forms;  logic  conventions;  Kar- 
naugh mapping;  three-state  and  wired 
logic. 

Book  3:  Half  adders  and  full  adders;  sub- 
tractors;  serial  and  parallel  adders;  pro- 
cessors and  arithmetic  logic  units  (ALUs); 
multiplication  and  division  systems. 

Book  4:  Flip-flops;  shift  registers; 
asynchronous  counters;  ring,  Johnson  and 
exclusive-OR  feedback  counter;  random 
access  memories  (RAMs);  read-only 
memories  (ROMs). 

Book  5:  Structure  of  calculators;  key- 
board encoding;  decoding  display  data; 
register  systems;  control  unit;  program 
ROM;  address  decoding;  instruction  sets; 
instruction  decoding;  control  program 
structure. 

Book  6:  Central  processing  unit  (CPU): 
memory  organization;  character  represen^ 
tation;  program  storage;  address  modes: 
input/output  systems;  program  interrupts 
interrupt  priorities  programming;  assem 
biers;  executive  programs,  operating 
systems,  and  time-sharing. 

OUR  CUSTOMERS 

Design  of  Digital  Systems  has  been 
bought  by  more  than  half  the  50  largest 
corporations  in  America,  and  by  Motorola, 
Intel,  DEC,  National  Semiconductor,  Fair- 
child,  General  Instrument,  Hewlett- 
Packard,  Heath  Co.,  M.I.T.,  NASA,  Smith- 
sonian Institute,  Bell  Telephone  Labs.  And 
many,  many  more,  as  well  as  corporations 
and  individuals  in  over  50  countries. 


BASIC  COURSE 


Digital  Computer  Logic  &  Electronics 

CONTENTS 

Digital  Computer  Logic  and  Electronics 
is  designed  for  the  beginner.  No  mathe- 
matical knowledge  other  than  simple  arith- 
metic is  assumed,  though  you  should  have 
an  aptitude  for  logical  thought.  It  consists 
of  4  volumes  —  each  HVz"  x  8V4"  —  and 
serves  as  an  introduction  to  the  subject  of 
digital  electronics. 

Contents  include;  Binary,  octal  and 
decimal  number  systems;  conversion  be- 
tween number  systems;  AND,  OR,  NOR 
and  NAND  gates  and  inverters;  Boolean 
algebra  and  truth  tables;  DeMorgan's 
Laws;  design  of  logical  circuits  using  NOR 
gates;  R-S  and  J-K  flip-flops;  binary 
counters,  shift  registers  and  half-adders. 


NO  RISK  GUARANTEE 

There's  absolutely  no  risk  to  you.  If 
you're  not  completely  satisfied  with  your 
courses,  simply  return  them  to  GFN  within 
30  days.  We'll  send  you  a  full  refund,  plus 
return  postage.- 

TAX  DEDUCTIBLE 

In  most  cases,  the  full  cost  of  GFN's 
courses  can  be  a  tax  deductible  expense. 

PHONE  ORDERS-  FREE 

To  order  by  phone,  call  (603)  224-5580 
with  your  credit  card  information.  It  won't 
cost  you  a  dime,  because  we'll  deduct  the 
cost  of  your  call  from  the  price  of  the 
courses  you  order. 

TO  ORDER  BY  MAIL 

You  may  u$e  the  order  form  below  if  you 
wish,  but  you  don't  need  to.  Just  send  your 
check  or  money  order  (payable  to  GFN  In- 
dustries, Inc.)  to  the  address  below.  If  you 
don't  use  the  order  form,  make  sure  your 
address  is  on  your  check  or  the  envelope, 
and  write  "DDS"  (Design  of  Digital  Sys- 
tems). "DCLE"  (Digital  Computer  Logic  & 
Electronics),  or  "both"  (both  courses)  on 
your  check. 

There  are  no  extras  —  no  sales  tax.  And 
we  pay  all  shipping  costs. 

We  also  accept  company  purchase 
orders. 

AIR  MAIL 

The  prices  shown  include  surface  mail 
postage  anywhere  in  the  world.  Air  mail 
postage  costs  an  extra  $10  for  both 
courses  (10  volumes). 

DISCOUNTS 

Call  or  write  for  details  of  educational 
and  quality  discounts,  and  for  dealer  costs. 


gP 


GFN  Industries,  Inc. 

BIdg.  7-20 

203  Loudon  Road 

Concord 

NH  03301 


Call  (603)  224-5580  to 
order  by  phone  -  free. 

7  days,  24  hours 

Circle  143  on  inquiry  card. 


Order  free  by  phone 
No  sales  tax 
No  shipping  charges 
Money-back  guarantee 
Tax  deductible 
Save  $5 


SAVE  $5 

If  you  order  both  courses,  you  save  $5 
Order  at  no  obligation  today. 

To:  GFN  Industries,  Inc.,  BIdg.  7-20,  203  Loudon  Road,  Concord,  NH  03301 

Please  send  me 

sets  of  Design  of  Digital  Systems $19.95         $ 

sets  of  Digital  Computer  Logic  &  Electronics $14.95  

sets  of  both  courses $29.90  

Enclosed  is  ctieck/money  order  (payable  to  GFN  Industries,  Inc.)  for  total    $ 

NAME 

ADDRESS  

CITY/STATE/ZIP .R8 


BYTE  AuBUSl  1979         115 


these  3  forces,  by  designing  input 
functions  that  will  sense  them.  I  could 
have  made  one  system  that  would 
sense  force  along  a  set  of  curved  lines 
representing  direction,  and  another 
that  would  sense  force  along  a  dif- 
ferent set  of  curved  lines  crossing  the 
first  set;  a  coordinate  system  without 
any  straight  lines  in  it.  This  would 
result  if  the  sensors  were  nonlinear,  as 
we  know  they  are.  It  would  have 
made  no  difference,  except  for  the 
fact  that  there  would  not  have  been  a 
simple  label  like  X  force  to  assign  as  a 
meaning  for  the  perceptual  signals.  It 
would  still  be  possible  to  specify  3 
reference  signals  and  thus  set  the  3 
perceptual  signals  to  specific  values, 
thereby  creating  a  specific  state  of 
tension  in  all  3  tendons  that  would 
automatically  resist  disturbances. 
The  way  in  which  the  external  situa- 
tion is  represented  is  almost  im- 
material, as  long  as  3  reasonably  in- 
dependent perceptual  functions  are 
created.  There  is  no  coordinate 
system  in  the  outside  world.  The 
behaving  system  makes  up  one  of  its 


If  there  were  sensors  on  each  mus- 
cle to  detect  muscle  length  as  well  as 
force,  we  could  add  3  more  control 
systems  at  level  1,  and  3  more  in- 
dependent aspects  of  the  external 
world  to  control  at  level  2.  In  fact, 
there  are  muscle-length  sensors,  and  I 
am  working  on  several  models  that 
take  them  into  account. 

If  you  now  imagine  500  to  800 
muscles  involved  with  at  least  twice 
as  many  level-1  control  systems 
(length  and  force  surely;  rate  of 
change  highly  likely),  you  will  begin 
to  perceive  the  richness  of  the  world  in 
which  level-2  systems  exist.  Add  to 
this  the  millions  of  sensors  for  heat, 
cold,  vibration,  joint  angle,  light, 
sound,  taste,  smell,  hunger,  pain,  ill- 
ness, angular  acceleration,  joint  com- 
pression, and  so  on,  and  you  might 
begin  to  glimpse  the  complexity  of  the 
real  system  we  are  modeling.  Since 
perceptions  that  arise  from  sources 
other  than  direct  effects  of  muscles 
exist  in  large  numbers,  there  can 
clearly  be  far  more  level-2  systems 
than  level-1  systems,  although  the 
number  of  level-2  systems  that  can 


Bowling 
Bookkeeper 

Tested  in  Actual  League  Use 
for  Two  Seasons 


,v 


\^^ 


r  \ 


SowPrTOSlWl^ 


■(\  \ 


F^hat  does  evcivthfe 
wouici  do  —  and 

kcepcr-f-  will  IfSt  ecK-ri  'juwikp  s  myn  bi-'iie.i  ui   tiie  ygl 

each  bowler's  high  game  of  the  year  every  week. 

The  Bowling  Bookkeep«rt  prompts  the  user  through  each 
;  -irt  so  even  a  non-computerite  can  easily  use  the  package 
i  I  le  Bowlins  Bookkeepert  runs  under  standard  CP/M*. 

Ihe  entire  Bowling  Bookk«epert  system  which  includes  .i  start  \ 
up  program,  a  score  entering  program,  a  posting  program,  and  an  \. 
error  recovery  program  costs  $400.  A  complete  computer  system 
consisting  of  an  Altos  8000-1  microcomputer,  a  Microterm  M\MS. 
terminal,  CP/M*  operating  system,  and  the  Bowling  Bookkeepert  is 
available  from  COMPCO  for  under  $5,000 

■nrademark  of  COMKO 
'Trddemafk  ot  Digital  Research 


,V 


rO 


$400  for  Complete  Packase 


Col .__ 

8705  North  Port  Washington  Road       Milv^aukee,  Wis.  53217       414/351-3404 


tmpco 


act  independently  at  the  same  time  is 
limited  by  the  total  number  of  com- 
parators available  at  level  1. 

Perhaps  you  can  now  see  why  this 
approach  to  a  model  of  a  human  be- 
ing (rudimentary  is  it  is  at  this  point) 
has  some  powerful  implications  for 
the  building  of  robots.  I  suggest  a  for- 
mal distinction  between  a  robot  (an 
imitation  of  a  living  system)  and  an 
automaton  (a  device  which  automati- 
cally produces  complex  actions).  An 
automaton  is  designed  to  create  pre- 
selected movements;  a  robot  is 
designed  to  control  preselected  per- 
ceptions (its  own).  In  order  for  an 
automaton  to  produce  precise  and 
repeatable  behavior,  it  must  be  built 
so  strongly  that  normal  disturbances 
cannot  alter  its  movements,  or  it  must 
be  protected  from  disturbances  that 
might  interfere  with  its  movements. 
In  order  for  a  robot  to  create,  for 
itself,  precise  and  repeatable  percep- 
tions (and  thus  precise  and  repeatable 
consequences  of  behavior),  it  need 
only  perceive  precisely,  have  a 
sufficiently  high  error  sensitivity,  and 
be  capable  of  producing  forces  as 
large  as  the  largest  disturbances  that 
might  reasonably  occur. 

There  is  much  more  that  can  be 
said  about  the  general  relationship  of 
one  level  of  control  to  another,  but 
this  installment  has  raised  enough 
points  to  ponder.  To  prepare  for  part 
4,  you  should  run  this  simulator  and 
observe  what  happens  to  all  of  the 
variables  in  it.  Try  keeping  the  distur- 
bance constant  in  magnitude  and 
rotating  its  angle;  try  altering  the 
muscle  angles;  change  line  3  to  use 
different  error  sensitivities  (G(x))  and 
slowing  factors  (K(x)).  Use  the  C 
command  for  longer  iterations,  and 
convince  yourself  that  a  steady  state 
has  really  been  reached.  See  what 
happens  if  the  muscle  tone  isn't  set 
high  enough  (there  is  a  very  good 
reason  for  muscle  tone  control).  Do  a 
series  of  iterations  with  slowly  chang- 
ing reference  signals,  and  plot  muscle 
tension  against  each  reference  signal. 
Get  the  feel  of  this  small  extract  of  the 
whole  human  hierarchy  because  in 
part  4  we  will  widen  the  field  of  view 
to  include  everything,  and  we  will 
begin  to  look  at  some  experiments 
with  human  subjects.  These  ex- 
periments will  be  noninvasive, 
nondestructive  —  more  like  video 
games  than  science  —  but  far  more 
useful  than  the  games.  ■ 


116        Autjubl  i979  V-:    BYTl:  Pulilicilioiib  Inc 


Circle  56  on  inquiry  card. 


180 


Ws®"' 


TH€V 


5«.,!f- 


'%, 


»»« 


*C3' 


»t<i 


s;'«^  ?*• 


^w^ 


>I^  „.  ft 


Hfif    -- 


€R€ 


^B    I  «5  '.^  ff  °;  »   "l^  ►  ^"It  »'''  \  ^»  —      ^^H 

^e  vouf  **^^     ^ortxi,  o"sW^„oA,  6800,  ^'^"^      a\on9         g^^dress  co\^ri  ^^  a  o        ^^cVa' 


V3l  ■  ^  r  Pa^*- 


°^-"  - -r*"  -'SS'^vo  Lr'?s:.f-rv■ 
pasier  ^o  ^        jgan  pro^      maximum  o^  *_— ^  o-ic 

earW  an^  ^"^  ;;  oo/pa^^^^^!:!!^-^^ 


,  and  rur. ;;  oo/pa^J^^!:!!;^-^ 


^ 


,nr  VO^f  P'°^  obect  code,  ---  -      pore^Qr^ :^::i:-^^-;:^  058-bA'  •   ^^ 

"^^  avoseS2i^^£2S!. ■        Neuj  from  BR 

'i(ic  622!^-^^^^^ — —     '  Osborne  ond  flssociotes!     ^^B 

ZeOASSEMBI 

b 


^ros^il^i^^^^^^^ —  Ncuj  from 

—  Osborne  and  flssociotes! 

BLY  LANGUAGE  PROGRAMMING 
by  Lance  A.  Leventhal 

n    Hot  off  tfie  press,  fiere's  the  Z80  assembly  language  and  Its  use  in  Lance  Leventhal's 
graphic  style     A  parallel  to  his  earlier  bool<  6800  LANGUAGE  PROGRAMMING,  it  covers 
the  Z80  instruction  set  in  depth  and  nrnnrammina  technioues  for  its  use.    Included  are  more 
than  80  sample  programs  in  sour( 
mpthnds_  assembler  conventions,  an 


j:—- — —  Z8O  ASSEMBLY  LANGUAGE  PROeRAMMINli 

by  Lance  A.  Leventhal 

n  Hot  off  the  press,  here's  the  Z80  assembly  language  and  its  use  in  Lance  Leventhal's 
graphic  style  A  parallel  to  his  earlier  bool<  6800  LANGUAGE  PROGRAMMING,  it  covers 
the  Z80  instruction  set  in  depth  and  programming  techniques  for  its  use.  Included  are  more 
than  80  sample  programs  in  source  and  object  code,  Z-80  I/O  devices  and  mterfacing 
methods,  assembler  conventions,  and  8080A/8085  vs  Z-80  comparisons.  $9.50 

6800  LANGUAGE  PROGRAMMING  by  Lance  A.  Leventhal  $9.50 

Please  use  order  form  on  page  161  ,  —  —  —  —————  —  ————  —  ———  „.„„ 

for  ordering  the  above  books.  Pl^^^e  send  me  the  following  BITS  PROGRAMMER  PADS 

'  n    Z80      n    6800      n    6502      D    BOSOA      D    I8O2      @  $2.50  each 


Please  use  order  form  on  page  16I 
for  ordering  the  above  books. 

*fltt0ntion  Dealers: 

BITS  PROGF^AMMER  PADS™  are 

in  great  demand  among  microcom- 


BITS  PROGF^AMMER  PAUS'"  are 

in  great  demand  among  microcom- 
puter programmers  and  users 
everywhere.  We  invite  your  in- 
quiries. Please  write  or  call  today. 

V . 


_pads  $_ 


Post.  & 
Handl. 

TOTAL 
1 B2089 


BYTE  August  1979         117 


TRS-80 

AT  LAST!  HIGH-QUALITY  SOFTWARE 

AT  MASS-PRODUCTION  PRICES. 


WORD  PROCESSOR  DOS  &  16K  $39 

Be  selective!  Avoid  'word  processor'  converted  from 
another  system.  It  is  hard  to  load  (an  object  program), 
and  the  worst  is  you  cannot  store  your  text  file  in  disk. 
Our  WORD-III  is  the  first  word  processor  specifically 
designed  for  TRS-80  that  uses  disk  storage  for  text. 
Written  in  BASIC.  No  special  hardware,  no  text  size 
limit.  Use  for  letters,  manuals  &  reports. 

MAILING  LIST  DOS  &  16K  $35 

It  lets  you  maintain  data  base  and  produce  reports  & 
labels  sorted  in  any  field.  500  labels/disk.  Random 
access.  2-digit  selection  code  used. 

INVENTORY  DOS  & 16K  $39 

While  others  use  inefficient  sequential  file,  we  use  9- 
digit  alphanumeric  key  for  fast  on-line  random  access. 
Record  has  key,  description,  level,  safety  level,  order 
amt.,  unit  cost  &  price,  annual  usage,  location  and 
vendor  code.  Reports  give  order  info,  performance 
summary,  etc. 

KEY  RANDOM-ACCESS  UTIL        DOS  &  16K  $19 

Lets  you  access  a  record  by  specifying  a  key.  Features 
hashing,  blocking,  buffering  technique,  auto  I/O  error 
retry,  etc. 

DISKETTE  DATA  BASE     DOS  &  32K       $49 

You  can  use  it  to  maintain  a  data  base  &  produce 
reports  without  any  programming.  Define  fields,  type, 
screen  &  report  formats  on-line.  Almost  use  up  all  32K. 

ACCOUNT  manage  client  accounts  &  account 
receivable.  Remark  fields  for  general  use.  Automatic 
billing  &  transaction  recording.  32K  req.  DOS  $59. 

SORT  &  LINKEDLIST  ACCESS  UTIL  Lev.  II 

Unlimited  #  of  sort-keys.  All  data  type.  Link  &  unlink  a 
record  in  a  list.  4K.  $10  each  or  $16  both. 

CASSETTE  WORD  PROCESSOR  Lev.  II  &  16K  $29 
Level  I  or  II  cassette  software: 

data  base  manager,  inventory  16K         $20  each 
check  balance  &  stock  security  4K         $10  each 

or  $15  both 
Our  competitors  offer  $99  cassette  word  processor, 
$90  sequential  'on-memory'  inventory,  inflexible  mail 
system  that  does  not  produce  report,  16K  data  base. 
Compare  all  these  basic  features  first.  If  still  not 
convinced,  send  $1  and  2  self-addressed  stamped 
envelopes. 

MICRO  ARCHITECT 

96  Dothan  St. 
Arlington,  MA  02174 


Text  continued  from  page  16: 

Conditional  Expressions 

Clearly,  the  meaningful  use  of  predicates  and 
recognizers  requires  the  existence  of  language  constructs 
to  modify  the  program  flow.  Such  constructs  are  called 
control  structures.  One  basic  control  unit  in  LISP  is  called 
the  conditional  expression.  In  M-LISP  it  is  written: 

[<p,>  — <ei>;<p2>  — <e2>;...f-<e„>] 


The  meaning 
follows: 


of  such   a  conditional  expression   is  as 


Each  <p,>  is  a  predicate;  the  <e,>s  are  arbitrary 
LISP  expressions.  We  evaluate  the  <  p,>  s  from  left 
to  right,  finding  the  first  which  evaluates  to  true. 
The  value  of  the  conditional  expression  is  the  value 
of  the  corresponding  <e,>  .  If  none  of  the  <p,>  s 
are  true,  then  the  value  of  the  conditional  is  <e„>  . 
Notice  that  this  last  case  is  really  forced  upon  us 
since  the  last  predicate  is  the  constant  f.  It  is  com- 
mon to  read  t  used  in  this  context  as  "otherwise." 

We  extend  our  M-LISP  to  S-LISP  mapping  to  include  this 
new  construct,  mapping  it  to: 

(COND   (<  predicate,  >^  <  expression,  > ''J 
(<  predicate!  >  ^  <  expressiona  > '^j 

(T<  expression„  >  '^)) 

The  evaluation  of  a  conditional  expression  is  different 
from  the  technique  we  have  used  in  previous  LISP  in- 
structions. Previously  we  have  insisted  that  we  evaluate 
all  of  the  operands  in  an  instruction.  In  the  conditional 
expression,  we  evaluate  the  minimal  part  of  the  condi- 
tional which  gives  us  a  true  predicate;  then  we  evaluate 
the  corresponding  expression. 

For  example:  (COND  ((ATOM  'A)  'FOO)  (T 1))  gives 
value  FOO,  since  (ATOM  'A)  gives  T.  (COND  ((ATOM 
'(A))  'FOO)  (T  D)  gives  value  1  since  (ATOM  '(A)) 
gives  ML. 

We  have  introduced  all  the  instruments  in  the  LISP  or- 
chestra. Now  it's  time  to  make  some  music. 

The  Factorial  Function 

Our  first  example  is  the  venerable  LISP  program  to 
compute  the  factorial  function: 

I  if  n  is  0 
n!  =nX(n-l)!  ii  n^^O 

We  want  to  convert  this  description  into  a  LISP 
algorithm.  The  "if"  structure  can  be  converted  into  a  con- 
ditional expression,  and  we  can  name  the  new  operation 
fact.  We  assume  our  LISP  machine  has  such  a  multiplica- 
tion operation  named  times;  we  also  assume  the  existence 
of  a  simple  subtract-by-one  function,  subl.  Here's  the 
body  of  a  factorial  algorithm  in  M-LISP: 

leqln:Oj~'l; 
f  —  timesln;fact[subl[n]]]] 

Notice  the  occurrence  of  the  function  name  fact  in  the 


118        August  1979  ©  BYTE  Publications  Inc 


Circle  214  on  inquiry  card. 


The  problem  will  solve  itself  before  we 
get  tired  of  reducing. 

body;  it  is  the  name  of  the  function  we  are  defining,  and 
somehow  we  must  associate  that  name  with  the  body. 
We  symbolize  that  association  using  "<  =".  For 
example: 

fact[nl<  =leqln;0]-'l; 

t^  timesln;factlsubl[nl]jl 

Here  is  its  pretty-printed  translation  in  S-LISP: 

(DEF  FACT  (N)  (COND  ((EQ  N  0)  1) 

(T  (TIMES  N  (FACT  (SUBl  N)))))) 

The  new  ingredient  in  these  definitions  is  the  use  of 
recursion.  A  typical  recursive  definition  has  several 
characteristics; 

•  The  body  of  the  definition  should  be  a  conditional 
expression.  A  definition  like  foolxj  <  = 
bazlfoolbarlxllj  will  cause  nothing  but  grief.  The 
conditional  expression  will  contain  two  basic  parts: 
the  termination  case  and  the  general  case(s). 

•  The  termination  case  describes  what  to  do  when  a 
primitive  data  structure  is  recognized.  We  consider 
the  integers  built  from  zero,  using  the  successor 
function,  addl.  Therefore,  our  termination  case  in 
FACT  involves  recognition  of  0,  and  terminates 
with  value  1. 

•  The  general  cases  involve  "composite"  data  struc- 
tures. We  can  decompose  a  positive  (composite)  in- 
teger down  to  zero  by  a  sequence  of  subtract-by- 
one  operations.  The  essential  idea  is  that  reducing 
the  complexity  of  the  argument  in  a  recursive  call 
will  thereby  reduce  the  complexity  of  the  problem. 
That's  an  old  trick;  what  recursion  says  is  that  we 
can  solve  the  original  problem  by  reducing  it  to  a 
simpler  case  of  the  same  problem.  If  we  persist,  the 
problem  will  solve  itself  before  we  get  tired  of 
reducing;  it's  like  dieting. 

Recursive  definition  is  similar  to  inductive  description, 
like  those  we  gave  for  defining  lists  or  the  M-LISP  to 
S-LISP  mapping.  The  techniques  involved  in  finding  the 
right  inductive  steps  are  similar  to  those  involved  in  find- 
ing the  right  decomposition  in  a  recursive  definition. 
Recursive  definition  is  a  powerful  descriptive  technique; 
fortunately  it  can  also  be  implemented  as  a  very  efficient 
computational  mechanism. 

Equal 

For  a  further  example,  assume  that  we  want  to  test  the 
equality  of  two  lists,  where  equality  means  that  each  ele- 
ment of  two  lists  is  identical  and  the  order  in  which  those 
elements  occur  is  identical.  The  identity  relation  also  ex- 
tends to  sub-elements  of  lists.  For  example: 

equal 

(A  BC)  (AB  C) 
(A(B  C)D)  (A(B  C)D) 
()() 


nonequal 

(A  B  C)  (AB  D) 
(A(B  C)D)  (A  D(B  O) 
(A(B(C)D))  (A  BCD) 

Let  EQUAL  be  an  algorithm  to  compute  this  extended 
equality;  it  will  be  recursive.  Regardless  of  the  complexi- 
ty of  objects,  all  we  need  to  do  is  find  the  right  way  to 
decompose  them,  and  then  pounce  on  the  pieces.  The 
decomposition  operators  we  have  for  lists  are  FIRST  and 
REST.  We  also  have  to  stop  the  decomposition.  In  FACT 
we  tested  for  the  occurrence  of  zero;  in  EQUAL  we  test 
for  the  occurrence  of  an  empty  list,  and  since  we  are 
assuming  that  elements  of  a  list  may  either  be  sublists  or 
atoms,  we  need  to  test  for  the  occurrence  of  an  atom. 
Let's  try  the  simplest  case  first,  the  empty  list: 

(DEF  EQUAL  (X  Y)(COND  ((NULL  X)  ...?) 

What  should  we  do?  If  x  is  empty,  then  we  will  only  have 
equality  if  y  is  also  empty,  otherwise  we  will  have  an  ine- 
quality: 

(DEF  EQUAL  (X  Y) 

(COND  ((NULL  XXCOND  ((NULL  Y)  T) 

(T  NIL))) 

Note  that  we  embedded  a  conditional  expression  within  a 
conditional  expression.  Note  also  that  the  interior  condi- 
tional returns  either  T  or  NIL;  but  that's  what  we  wanted 


It's 


for  graphics! 


NEW 

ASSEMBLY  LANGUAGE 

3D  GRAPHICS 

FOR  THE  APPLE  II . . . 


Our  3D  packages  allow  you  to  animate  3D  or 
2D  data  bases  created  with  standard  XYZ  coor- 
dinates.The  two  users  manuals  (90  pages  total) 
are  written  at  different  technical  levels  to  give  all 
Apple  users  a  quick  understanding  ot  access 
and  uses  from  BASIC  and  assembly 
language.  The  smalt  8K  memory 
requirement  lets  you  use  the 
subroutine  with  most  of  your 
educational,  scientific,  and 
game  programs. 

$45  (available  August  25, 
1979).  Disc  and  relocat- 
able cassette  option 
available. 

We  re  open  9  to  6.  Monday  Ihru 
Friday,  central  lime  Give  us  a  call 


The  engineering  &  graphics  people 


(217)367-0299 


LOGIC 

'BoxV,  Savoy,  I L  61874 


Circle  353  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        119 


since  EQUAL  is  to  encode  a  predicate  and  T  and  ML  are 
our  representations  of  the  truth  values  f  and  /.  Note  too 
that  we  depend  on  the  order  dependence  of  the  condi- 
tional evaluation;  we  won't  test  the  (NULL  Y)  expression 
unless  (NULL  X)  is  true.  We  won't  get  to  the  ". . .  ?"  condi- 
tion unless  (NULL  X)  is  false. 

We  can  still  have  x  non-empty,  and  y  empty;  let's  take 
care  of  that: 

(DEF  EQUAL  (X  Y) 

(COND  ((NULL  XXCOND  ((NULL  Y)  T) 

(T  NIL)) 
((NULL  Y)  NIL) 
...?) 

Now  the  ". . .  ?"  has  been  reduced  to  the  case  that  both 
lists  are  non-empty,  and  we  can  massage  the  pieces  with 
FIRST  and  REST.  We  look  at  the  FIRST  pieces;  if  they're 
equal,  then  our  decision  on  the  equality  of  the  original 
lists  depends  on  the  equality  of  the  remainders  (or  RESTs) 
of  the  lists.  If  the  FIRSTs  are  not  equal,  then  we  can  stop 
immediately  with  a  false  indication.  This  analysis  yields 
two  cases:  if  the  first  elements  are  atomic,  then  use  £Q  to 
check  their  equality;  otherwise  use  EQUAL  itself  on  the 
first  elements.  Here  we  go: 

(DEF  EQUAL  (X  Y) 
(COND  ((NULL  X)(COND  ((NULL  Y)  T) 

(T  NIL)) 
((NULL  Y)  NIL) 
((ATOM  (FIRST  X)) 
(COND  ((ATOM  (FIRST  Y))(EQ  X  Y)) 

(T  NIL))) 
((ATOM  Y)  NIL) 
((EQUAL  (FIRST  X)(FIRST  Y)) 
(EQUAL  (REST  X)(REST  Y))) 
(T  NIL)))) 

Reverse 

So  far  our  examples  have  been  either  numerical  or 


predicates.  Predicates  only  require  traversing  existing 
lists;  we  will  certainly  want  to  write  algorithms  which 
build  new  lists.  Consider  the  problem  of  writing  a  LISP 
algorithm  to  reverse  a  list  x.  There  is  a  simple,  informal 
computation:  take  elements  from  the  front  of  x  and  put 
them  onto  the  front  of  a  new  list  y.  Initially,  y  should  be 
( )  and  the  process  should  terminate  when  x  is  empty. 

For  example,  reversal  of  the  list  (A  B  C)  would  produce 
the  sequence: 


X 

y 

(ABC) 

() 

(BC) 

(A) 

(C) 

(BA) 

() 

(CBA) 

The  reverse  function  will  build  the  new  list  by  con- 
catenating  the  elements  onto  the  second  argument  of 

rev ' : 

reverse Ixj <  =  rev  'lx;( )] 
rev'lx;y]<  =jnulllx]^y; 

t^rev '  [restlxl; 

concatlfirstlxj;y]]] 

Since  y  was  initialized  to  (  )  we  are  assured  that  the 
resulting  construct  will  be  a  list. 

We  leave  it  to  the  reader  to  translate  this  algorithm  into 
S-LISP. 

Summary 

Those  of  you  who  have  already  heard  about  LISP  pro- 
gramming know  that  LISP's  two  major  characteristics 
are:  lots  of  parentheses,  and  strange  function  names  like 
car,  cdr,  and  cadadr.  By  now  you  should  at  least  under- 
stand why  the  parentheses  are  used,  if  not  totally  under- 
stand why  the  representation  is  a  benefit  rather  than  a 
curse. 

LISP's  second  characteristic  is  definitely  a  blemish. 
More  to  the  point,  it's  a  commentary  on  the  state  of  LISP 


'^ODY  T'ERIPHERALS 

Silk  Screen  Printed  Sepia  on  Quality  White  Cotton/Poly  T-Shirts 

TO  ORDER:    PRINT  Your  Name,  Address,  Zip,  Styles  and  Sizes  Desired 
(S,M.L,XL)  on  a  Sheet  of  Paper.  Include  $6.95  Per  Shirt. 
(Three  for  $18.00)  Out  ol  U.S.A.  Send  $8.00  US  Currency 
International  Money  Order  for  Each  Shirt. 

Our  Shirts  are  Made  in  America  and  Do  Not  Shrink! 

Custom  Designs  Available  for  Your  Club  -  Dealer  Inquiries  Welcomed. 
BODY  PERIPHERALS    P.  O.  Box  945   Chanute,  Kansas  66720 


120        August  1979  ©  BYTE  Publications  Inc 


Circle  33  on  inquiry  card. 


NEECO 


PET  2001  —  32K 


PROUDLY  ANNOUNCES  THE  NEWEST 
PET  MICROCOMPUTERS  BY  COMMODORE! 

The  PET™  is  now  a  truly  sophisticated 

Business  System  with  the 
announcement  of  these  Peripherals. 


«!  Floppy  Disk  anO  Prnie' 
b  &:ness  system  tor  most  prolessional 
eWs  iTiecJicino.  law.  Ocmai,  rcseatcT 
I    making,  printing,  cducalion.  energy  cun- 

tie  PET'-  Busii.ur,s  Syslcm  as  a 
t>r   dGliversin(oitnatinnli)allleve]ao( 
o  siyaitairaOleonlywiineqijipmenr 

eipensive  The  PET '"Business 
o  He  most  cost  cHirieni  business  icos 


lOOay  It  otters  a  wiOe  range  of  applications  trom  logging 
management  strategy  m  maicr  corporaiions  to  cganizmg 
accounts  antJ  invenlo/y  control  ol  small  tj JSmesses  Here 
are  jusi  a  lew  otihe  cost-saving  uses  inltie  corporation, 
prolossionat  office  ot  small  I)usiness'  slock  conlroi, 
purctiasing,  forecast  ing,  manutactunng  costing,  customer 
records,  mailing  lists,  etc      The  PET".  Floppy  Disk  and 
Printer,  a  compatible  business  syslcm  al  a  reasonable 
priC'j  —  Take  a  closer  took  al  these  Pei  pncrals 


LARGE  TYPEWRITER  KEYBOARDS  NOW  AVAILABLE! 


PRODUCT 

PET  2001 —4K 

PET  2001 —8K 

PET  2001  — 16KN  (Large 

PET  2001 —32KN  (Large 

PET  2023  PRINTER 

PET  2022  PRINTER 

PET  2040A 

PET  2040 

PET  C2N 

•The  16K/32K  (large  keyboai 
2040  Floppy  Drive  requires 


DESCRIPTION  PRICE  AVAILABILITY 

4K  RAIVI  $  595  IMMEDIATE 

8K  RAM  $  795  IMMEDIATE 

Keys)16K  RAM*  $  995  IMMEDIATE 

Keys)32K  RAM  $1295  IMMEDIATE 

ROLL  FEED  $  850  IMMEDIATE 

TRACTOR/ROLL  $  995  IMMEDIATE 

SINGLE  FLOPPY  $  895  JUNE/JULY 

DUAL  FLOPPY*  $1295  IMMEDIATE 

2nd  Cassette  $  100  IMMEDIATE 


rd)  units  do  not  include  a  cassette  drive.  Order  C2N  Cassette, 
a  16K  or  32K  unit.  8K  RAM  Retrofit  available  July. 


ALL  UNITS  ARE  FULLYTESTED  BY  NEECO  BEFORE  SHIPMENT.  ALL  PET'S  ARE 
WARRANTEED  (BY  NEECO)  FOR  1  FULL  YEAR!  NEECO  IS  A  FULL  CUSTOMER- 
ORIENTED  BUSINESS.  PLEASE  CALL  FOR  ADDITIONAL  INFORMATION.  ALL 
UNITS  ARE  IN  STOCK  &  READY  TO  SHIP.  FULL  SOFTWARE  AVAILABLE! 


FOR  8K  PETS 

(small  keyboards) 

.4  Megabytes  of  Disk 

Storage  for  8K  PETS! 

(Requires  Expandamem) 

400K-8S   DISK  SYSTEM    INCLUDES  RANDOM 

ACCESS  IN  DOS-LOADS  20K  IN  4  SECONDS! 

24K  Expandamem  Memory '525  SIOQ^ 

32K  Expandamem  Memory '615  Ifc33 


COMPUTHINK  .4  &  .8  MEGABYTE  DISK 
DRIVES  FOR  THE  NEW  16/32K  PETS! 

DISK  SYSTEMS  INCLUDE  DISKMON  OPERATING 
SYSTEM  IN  ROM  AND  INTERFACE  TO  16/32  PETS! 

•  Dual  Minifloppy  Drives  wilh  200K  per  diskette  side  for  total  -lOOK/SOOK  on  line. 

•  800K  model  accesses  all  4  diskelle  Sides  via  dual  read  and  write  arm  system 

•  Dual  Density  Hardwaie  and  DOS  loads  30K  (with  verification)  m  4.2  seconds  complete. 

•  DISKMON  (DOS)  adds  17  commands  to  BASIC  including  Random  Access  and  printer  support 

•  System  comes  ::omplGte  with  plug  in  internal  boa'd  containing  8K  RAM,  DOS.  and  Disk  Conlroiler 
Hardware— Board  plugs  directly  onto  internal  memory  expansion  pins 

•  System  does  not  utilize  IEEE  or  USER  Port,  systetr;  functions  directly  from  memary  port 

•  All  DISKMON  DOS  commands  reside  interactively  with  BAStC-disk  directory  command  and 
lormai  command  do  not  interfere  with  program  m  RAM  — DOS  command  were  designed  (or 
simplicity  of  US2  System  was  manufactured  for  heavy  commercial  use 

•  System  installs  completely  m  less  than  ten  minutes— immediately  ready  for  use 

•  M295  and '1595  prices  include  al!  hardware.  DOS.complele  user  manual,  and  demo/ulililydiskelte. 

•  Available  software  includes  PLM  Compiler  ('250),  Relocatable  Assembler  ('70).  Source-Edilor 
Program  ('70).  Aulolmk  Linking  Loader  (»7D),  and  a  complete  Database  system  (Pagemate  '495) 

•  Call  or  write  lot  complete  product  information  and  specifications— User  manual  '10 

(PRODUCT  AVAILABILITY  IS  AUG/SEPT—CALL  FOR  INFO) 

ALL  16/32K  MODELS  INCLUDE  AN  400K-16N M295 

INTERNAL  PLUG-IN  INTERFACE  400K-32N M295 

BOARD  CONTAINING  DOS,  8K  OF  800K-16N M595 

RAM.  AND  CONTROLLER  800K-32N '1595 


CALL  OR  WRITE  FOR  A  FREE  COPY  OF  OUR  NEW  JULY  CATALOG! 

NEW  CENTRONICS  730  PRINTER  FOR  PET! 

•  NEWEST  TECHNOLOGY  FROM  CENTRONICS  •  50  CPS  •  80  CHARACTER  LINE 

•  10  CPI  •  7x7  DOT  MATRIX  •  HANDLES  ROLL  FEED,  PIN  FEED 

..1  PAPER  •  UPPER  &  LOWER  CASE— M099  PRICE  INCLUDES 

—     -  INTERFACE  TO  lEEEPORT.  AVAILABLE  AUG/SEPT. 


$1099 


TRS-80  USERSI-THE 

MODEL  730  IS  AVAILABLE  FOR  USE  WITH 
THE  TRS-80.  PRICE 
INCLUDES  CABLE 

only 


$995 


WE CANNOTLISTALLOF  OUR  SOFTWARE  AND  HARDWARE  PRODUCTS 
CALLOR  WRITE  FOR  OUR* FREE* SOFTWARE/HARDWARE  DIRECTORY 

ALL  NEECO  PETS  CARRY  A  FULL  ONE-YEAR  NEECO  WARRANTEE. 


NEECO 


NEW  ENGLAND  ELECTRONICS  CO.,  INC. 

679  HIGHLAND  AVE.,  NEEDHAM,  (vtASS.  02194 
MON.  -  FRI.  9:30-5:30,  EST. 


(617)449-1760 

IVIASTERCHARGE  OR  VISA  ACCEPTED 
TELEX  NUMBER  951021,  NEECO 


Circle  282  on  inquiry  card. 


BYTE  August  1979         121 


DP  SYSTEMS 


SEMINARS 

OF  EXCELLENCE 


LOCAL  PtflFORMANCE^ 

NETWORKS       j     EVALUATION 


I      IMAGE       /        SS?  1    ntSOURCEl 

I  PROCESSING  I  PROCESSING  ^     SHARING 

J.-- --L^ 

^■^  "     '  '  -. 

^CAPACITY  '  COMPUTER  '   QUEUEING  ^ 

PLANNING  '  CRIME  ,    NETWORKS  , 


SIX  DYNAMIC  3-DAY  SEMINARS 
BY  THESE  EXPERTS 

DENNING 

PERFORMANCE  EVALUATION 

WASHINGTON,  DC.  ■  OCTOBER  3-5,  1979 

FARBER-JENSEN 

DISTRIBUTED  COMPUTER  ARCHITECTURE 

WASHINGTON,  D.C.  ■  OCTOBER  8-10,  1979 

ANDREWS- 

STOCKHAMaSAWCHUCK 

DIGITAL  IMAGE  PROCESSING 

WASHINGTON,  DC.  ■  OCTOBER  24-26,  1979 

BUZEN- 
DENNING -ARTIS 

CAPACITY  PLANNING 

WASHINGTON,  DC.  ■  NOVEMBER  13-15,  1979 

PARKER -ABBOTT 

FIGHTING  COMPUTER  CRIME 

SAN  FRANCISCO  ■  NOVEMBER  28-30,  1979 

KLEINROCK 

QUEUEING  SYSTEMS 

CHICAGO  ■  NOVEMBER  28-30,  1979 


Seminar  Fee: 
$675 


Call  or  write  today: 

(213)476-9747 


!£B!TFis¥TTUTe 

P.O.  BOX  49765,  LOS  ANGELES,  CA. 90049  (213)476-9747 


programming,  rather  than  the  language.  When  we  ex- 
amine the  very  low  level  representation  of  LISP  opera- 
tions, we  see  that  the  primitive  selection  operations  of 
LISP  data  structure  can  be  described  as  selecting  either 
the  left  or  right  branch  of  a  binary  graph.  Car  and  cdr  are 
these  selection  functions,  and  cadadr  is  an  abbreviation 
for  a  composition  of  these  operations.  Since  all  LISP  data 
structures  (in  our  simple  subset,  remember)  must  ulti- 
mately be  representable  as  combinations  of  atoms  and 
binary  graphs,  then  all  algorithms  must  ultimately  be  ex- 
pressible as  manipulations  of  graph  structure  involving 
car,  cdr,  and  a  function  to  construct  new  graphs,  cons. 

Most  LISP  programs  are  constructed  in  just  such  a 
fashion.  The  result  is  unsatisfactory  from  at  least  two 
views.  First,  the  programs  become  almost  totally  unread- 
able. Instead  of  couching  the  data  structure  abstractly  in 

terms  of  the  concept  , recognizer:  is doglxj;  selectors: 

left _eyelx] ,  tailfx] , . . . ;  and  constructor(s): 
make_doglxi:...xJ — ,  the  programmer  performs  the 
transformation  mentally  and  gives  us  eqlcadrlxj; 
DOGI,cadaddr[x],  and  conslx;  cons/z;y/. ../,  which 
borders  on  gibberish.  Neither  the  programmer  nor  a 
reader  has  much  chance  of  remembering  what  is  going 
on. 

An  equally  serious  problem  is  that  this  style  of  pro- 
gramming deeply  intertwines  conception  and  implemen- 
tation. Given  that  a  new  representation  of  "dog-ness"  is 
required,  the  programmer  must  search  out  all  areas  of 
program  which  use  the  arcane  encoding  and  replace  them 
very  carefully. 

Essentially  there  are  two  solutions  to  this  problem. 
One  solution  is  to  require  the  programmer  to  spell  out  de- 
tailed rules  for  data  structuring  a  la  Pascal.  Of  course 
there's  no  reason  to  suppose  that  the  programmer's  abili- 
ty to  remain  abstract  will  survive  any  better  here.  Indeed 
since  Pascal  really  supplies  "abstract  storage  structures" 
rather  than  "abstract  data  structures,"  along  with  the  re- 
quisite verbiage  of  a  typed  language,  there  are  reasons  to 
believe  that  the  programming  process  will  suffer  in  the 
long  run.  The  alternative  is  to  supply  the  programmers 
with  an  exceptional  programming  tool  and  an  under- 
standing of  abstraction,  modularity  and  the  power  of 
their  tool.  It  may  be  naive  to  believe  that  programmers 
can  be  self -disciplined,  but  the  alternatives  are  not  at  all 
attractive. 

The  other  LISP  articles  in  this  issue  explore  detailed  ex- 
amples of  LISP  applications.  Throughout  these  articles  a 
recurrent  theme  is  the  delicate  balance  between  realistic 
abstraction  and  overspecification.  One  of  the  real 
wonders  of  LISP  is  that  it  allows  you  to  work  with  ideas. 

Traditionally,  all  LISP  implementation  problems  have 
been  dealt  with  in  software.  An  exciting  alternative  is  to 
build  LISP  machines  in  hardware,  thereby  raising  the 
programming  floor  to  a  much  more  acceptable  machine 
level  than  previously  available.  Several  very  healthy  pro- 
jects exist,  from  re-microcoded  machines,  through 
specially  constructed  hardware,  to  experiments  with  very 
large  scale  integration  LISP  devices.  For  those  readers 
who  are  interested  in  more  details,  several  of  these  efforts 
will  be  documented  in  an  issue  of  the  IEEE  Transaction  on 
Computers  later  in  1979.  It  is  clear  to  me  that  LISP  is  only 
beginning  to  have  an  impact  upon  the  computing  com- 
munity. ■ 


122      August  1979  ©  BYTE  Publications  inc  Circle  364  On  inquiry  Card. 


-^^        for  users  ot     ^, 
^  Uadin  Stack's  m-""*' 

J_l!^^^-^^iS^^=u^  Liieboat  Associates,  specialists jn  ™  .-.„.  ^^gsed  language  and 
feSS£%rHS5     TRSDOS.  The  software  is  supplied  on 

H?:;'.' ^-.^la^fslndTauated  values  ^^^^  '"^j,^,  ^ V^TnSfer  fo^ANsVPORTRAN  X3.9  ,.,,,3ble  modules  ^o'  TORTRAN  ^ 

t53'J^^S^S»^^^»^^  gSSpllxvana.es).  ^°?^^SS;^^c^;S-^-ta,s,  etc. 

S^°°^'^W^°e?r'— ^^'Ss?      WWIRO  ASSEMBLM  ad^g  niSKTEKT  EDITOR  to  create  and 

iKis^SSSsS'^Jail  «°«  ™'« °^  H50. 

^,^.»^»;...Sffi-ffi=e"SSS       Sdefwor.  and  cross  SenWofunotlonsalone  .  SgU 

„,h  ma.i  laDeis     M .^„t  cvsTEM  -  F'^a""^!  wSm  9948  Broadway        ^  Tplex' 668-585 

,P,RTMENT  «ANAG^^^^^^^^^  ^^M  ^NewY^^k.  N.Y.  10024  Telex. 

^^^l£«-nSS^-^-^-  -^^^mm  ,,^endU;etonow^ 

rMVE^vSlM  -  Cap.u^  .         ^"      ^ □,rone 

INVENIU"'    ^        turnover.  marKup.B'^  type  ot  ,„  .    ,  '     '  

S:«|a?SS;Kisi  teoattesoaates  ^ ^^ 

*:i;^2-».»n'«£i*s"s.'-        r    THE  risrssS"..iir 

S£««iss-£=2K-:*S        r  MARKET 

9'^  ^                                                         _,  ,^  Dacp  Processor. 
Appointments^  Enhanced  version  lor  CBAblo  ^ ^^^^^^gggj^K,,,,^ 

'^^^^^^^^^:^;:^i^^^  2248  eroadwa.  New^^^ork  N.Y.  10024 

powertu,  ex.ens-s^»„^-^^;io'r"^l\sages.  .eyboarci  de^  6        ^^^^^gg 

cassette  tape.  ^orkQ  nf  Tandy  Corporation. 

•  Badio  ShacK  .ndTRS-80aretrader.arKsotTan  y   ^^ 


MINIMAX.  THE  COMPUTER  Th 


1;«»' 


No  microcomputer  in  the  world  can 
match  Minimax  incredible  feature  tor 
incredible  feature. 

Simply  stated,  Minimax  is  the 
most  advanced,  least  expensive  com- 
puter ever  created. 

NEVER  BEFORE  HAVE  THESE 
FEATURES  BEEN  AVAILABLE  ON  A 
MICROCOMPUTER  AT  ANY  PRICE  - 
LET  ALONE  $4495. 

More  Memory.  Minimax  comes  in  two 
sizes.  Both  with  108,544  bytes  of  semi- 
conductor internal  memory. 

In  addition,  the  Minimax  1  has  an 
external  storage  capacity  of  800k 
while  the  Minimax  II  features  an 
enormous  2.4  megabytes  of  on-line 
disk  storage.  It's  the  most  memory  for 
the  least  money. 

More  Speed.  Minimax's  speedy  15,000 
character  per  second  data  transfer 
rate  is  substantially  faster  than  any 
other  microcomputer 


Split  screen  combination  of  character 
and  graphic  information. 

More  Graphic  Resolution.  Minimaxs 
screen  has  the  highest  resolution 
graphics  of  any  microcomputer 
122,880  (240x512)  individual  points, 
each  program  addressable. 

More  Screen  Capabilities.  Minimax 
offers  the  most  advanced  full  screen 


data  entry  and  editing  capabilities  of 
any  microcomputer  They  include 
word  or  character  insertion  or  deletion, 
split  screen  modes,  individual  field 
editing  and  automatic  skip  to 
next  field. 

More  ProgramabUlty.  Minimax 
features  exceptionally  advanced  soft- 
ware development  tools.  The  CPU 
comes  complete  with  64  user 
definable  opcodes  and  ROM  resident 
software.  Plus  Microsoft  BASIC,  PLM, 
DOS  operating  system,  FIFTH 
language  interpreter  a  machine 
language  monitor  with  Tiny 
Assembler  Disassembler,  Dump 
Facility  and  Debugging  Aid. 

More  Applications  Software. 

Minimax's  superior  software  selection 
allows  you  to  perform  most  of  the 
common  data  manipulation,  accounts 
receivable,  accounts  payable, 
general  ledger,  inventory,  payroll  and 
software  development  functions  with- 


Circle  71  on  inquiry  card. 


AT  OUTCOMPUTERS  THEM  AU. 


out  expensive  or  time  consuming 
programming. 

YOU  GET  2.4  MEGABYTES 
WITHOUT  TAKING  A  BIG  BITE  OUT 
OF  YOUR  BUDGET. 

At  S4,495  for  the  800 1<  Miramax  I  and 
$5,995  for  \he  2.4M  IVIinimax  II,  it  is  not 
only  incomparable  feature  tor  feature, 
but  dollar  for  dollar  as  well. 

While  these  prices  do  not  include 
a  printer,  a  wide  range  of  character, 
high  speed  and  word  processing 
printers  are  available. 


High  resolution  graphics  for  original 
design  development. 


THERE'S  MORE  INSIDE  A  SINGLE 
MINIMAX  THAN  MOST  COMPUTERS 
TWICE  ITS  SIZE  AND  FOUR  TIMES 
ITS  PRICE. 

Minimax's  remarkable  sophistication 
also  makes  it  remarkably  versatile  for 
business,  scientific  or  engineering 
applications. 

For  business,  everything  from  pay- 
roll checks  to  accounting  ledgers  can 
be  instantly  processed,  printed 
and  filed. 

Engineers,  architects  and 
scientists  can  use  the  high  resolution 
graphics  as  a  visual  research  and 
planning  tool. 

Because  of  its  comprehensive 
software  capabilities,  software 
engineers  can  develop  finished 
programs  for  other  microcomputers 
or  the  most  sophisticated  mainframes. 

PEOPLE  CALL  IT  INCREDIBLE. 
WE  CALL  IT  MINIMAX. 

There  has  never  been  so  much 
capacity,  flexibility  and  sophistication 
built  into  a  computer  so  affordable. 

To  obtain  the  complete  Minimax 
story  —  including  ordering  informa- 


Complete  business  software  packages. 

lion  —  please  send  the  reader  service 
card  or  contact  us  directly. 

The  more  you  know  about 
IVIinimax,  the  more  incredible 
it  becomes. 

WHAT  MAKES  ONE  COMPUTER 
BETTER  THAN  ANOTHER  MAKES 
MINIMAX  THE  BEST. 


MINIMAX 

Developed  and  IManufactured  by 
COI\/IPU/THINK™  3260  Alpine  Road, 
IVIenIo  Park,  CA  94025  (415)  854-2577 


JOHN  D  OWENS  ASSOCIATES,  inc 

12  SCHUBERT  STREET  (new  address) 
STATEN  ISLAND,  NEW  YORK  10305 


WE  ARE  KNOWN  FOR  OUR  PROMPT,  COURTEOUS  SERVICE 

TELETYPE  MODEL  43 

4320  AAA  (TTL  interface)    $985 

4320  AAK  (RS232  interface)    $1 ,085 

with  transformer  to  operate  on  50Hz,  220v,  installed  inside  cabinet    add  $50 

We  stock  paper  and  ribbon  for  the  Teletype  Model  43 

DEC  LA  34 

Low  cost,  convenient  desl<-top  design.  Feels  and  operates  like  a  typewriter.  128  ASCII 
character  set.  Switch  selectable  110  and  300  baud  rates.  30  cps.  Adjustable  character 
widths  and  line  spacing.  Attractive  9x7  dot  matrix.  Includes  RS232  interface  $1,159 

HAZELTINE 

1500  (assembled  only)    $945 

1510    $1 ,085 

1520    $1 ,425 

with  50Hz,  220v  current  adaptation    add  $100 

also  available  with  Danish,  German  or  French  character  sets   add  $60 

INTERTUBE  SUPER  BRAIN   $2,885 

DUAL  Z80,  dual  floppy,  double  density,  64K  RAM  4Mhz.,  CP/M,  FORTRAN,  COBOL, 
BASIC,  Assembler  Language.  Contained  in  Intertube  II. 

INTERTUBE  II $800 

Smart  terminal  for  intelligent  users.  Switch  selectable  50  Hz  option  at  no  extra  cost.  With 
220v  transformer.  Installed    add  $100 

MARINCHIP  SYSTEMS  M9900  CPU  —  S-100  COMPATIBLE 

Network  operating  system,  PASCAL,  Extended  precision  commercial  BASIC,  FORTH, 

META  and  applications  package.  Complete  kit  and  DISCEX  software   $550 

Assembled    $700 

We  configure  systems  to  meet  your  budget  and  your  needs.  Hard  Disk  interface  (with 
software)  available. 

IMS  MEMORY,  16K  Fully  static,  250  ns    $346 

TEI  S-100  MAINFRAMES 

12  slot  —  MCS  112    $433 

22  slot  —  MCS  122    $528 

These  mainframes  are  completely  assembled,  tested  and  contain  everything  required 
for  plug-in  operation. 

KONAN  HARD  DISK  CONTROLLER  $1,550 

S-100  compatible,  plugs  into  S-100  mainframe.  Controls  1-4  disk  drives. 

FUJITSU  HARD  DISK   $5,700 

50  megabytes  of  unformatted  data  in  a  single,  removable  cartridge. 

IMS  5000  SERIES,  COMPLETE  Z80  SYSTEM    $2,170 

2  I/O  ports,  1 K  EPROM  bootstrap  loader,  double  density,  dual  5  1/4  inch  disks.  S-1 00, 1 2 
slot  mainframe.  A  new  rising  star!  No  waiting. 

PER  SCI  FLOPPY  DISK  DRIVES 

299  DUAL  DISK,  2  Sided    $1 ,495 

277  DUAL  DISK,  Single  Sided    $1,210 

1170  CONTROLLER,  Single/Double  Density    $1,015 

2142  CABINET  &  POWER  SUPPLY  for  277  $300 

2149  CABINET  &  POWER  SUPPLY  for  299  $390 

MODEM:  THE  CAT  from  Novation  $190 

Originate/Answer.  300  baud. 

TO  ORDER:  We  ship  within  24  hours  after  receipt  of  certified  check,  money  order  or 

cashiers  check.  Credit  cards:  add  4%.  Personal  checks:  allow  ten  days.  $12  shipping  for 

terminals.  $3  for  memories,  and  modem.  New  York  residents  include  sales  tax. 

—  WE  EXPORT  TO  ALL  COUNTRIES  — 

—  OVERSEAS  CALLERS  USE  (212)  448-6298  ONLY  — 

JOHN  D.  OWENS  ASSOCIATES,  inc. 

12  SCHUBERT  STREET  (new  address) 
STATEN  ISLAND,  NEW  YORK  10305 

—  DAY,  EVENING,  WEEKEND,  HOLIDAY  CALLS  WELCOME!— 

WE  HAVE  NO  READER  INQUIRY  NUMBER,  PLEASE  CALL  OR  WRITE. 

(212)  448-6283  (212)448-6298 


Teclinicsl  Fopistn 


Permutation 
Bibliography 


Eduardo  Kellerman 

IBM 

Endicott  NY  13760 


In  the  article  "Solving  the  Eight  Queens 
Problem"  (October  1978  BYTE,  page  122) 
Terry  Smith  asked  readers  for  information 
on  algorithms  for  generating  permutations. 
In  April  1975,  I  compiled  the  following 
bibliography  on  the  subject  (I  have  not 
updated  it  since  then).  I  think  some  readers 
may  find  it  useful. 

I  Generation  of  Permutations 

Mark  B  Wells,  "Generation  of  Permutations 
by  Transposition,"  Mathematics  of  Compu- 
tation, volume  15,  1961. 

Frank  Harary,  "Permutations  with  Restrict- 
ed Position,"  Matliematics  of  Computation, 
volume  16,  1962. 

J  R  Howell,  "Generation  of  Permutations 
by  Addition,"  Matfiematics  of  Computation, 
volume  16,  1962. 

Selmer  M  Johnson,  "Generation  of  Permu- 
tations by  Adjacent  Transposition,"  l^ath- 
ematlcs  of  Computation,  volume  XVII, 
number  83,  July  1963. 

D  H  Lehmer,  "The  Machine  Tools  of  Com- 
binatorics" in  Applied  Combinatorial  Math- 
ematics, edited  by  E  F  Beckenbach,  John 
Wiley  and  Sons  Inc,  New  York. 

G  G    Langdon  Jr,  "An  Algorithm  for  Gen- 
erating Permutations,"  Communications  of 
the  ACM,  volume  10,  number  5,  May  1967. 

M  Renaud  and  S  Regnier,  "Programme  de 
Permutations,"  Revue  Francaise  d'  Informa- 
tique  et  de  Recherche  Operationell,  May- 
June  1967. 

D  Pager,  "A  Number  System  for  the  Per- 
mutations," Communications  of  the  ACM, 
volume  1  3,  number  3,  March  1970. 


126        August  1979  ©  BYTE  Publications  Inc 


E  Kellerman,  "Method  for  Generating 
Permutations,"  IBM  Technical  Disclosure 
Bulletin,  volume  13,  number  8,  January 
1971. 


E  W  Stacy,  "Exact  Evaluation  of  Determi- 
nants Via  Permutation  Arrays,"  IBIVI  Tech- 
nical Disclosure  Bulletin,  volume  18,  number 
9,  February  1976. 


Kazuaki  Harada,  "Generation  of  Rosary 
Permutations  Expressed  in  Hamiltonian 
Circuits,"  Communications  of  the  ACM, 
volume  14,  number  6,  June  1971. 

B  R  Heap,  "Permutations  by  Interchanges," 
source  unknown. 

D  J  Lorch,  "Permutations  of  N  out  of  M," 
personal  communication,  July  18  1972. 

Ronald  C  Read,  "A  Note  on  the  Generation 
of  Rosary  Permutations,"  Communications 
of  the  ACM,  volume  15,  number  8,  August 
1972. 

C  T  Fike,  "A  Permutation  Generation 
Method,"  IBM  Technical  Report  TR73.002, 
Systems  Research  institute.  New  York. 

Mohit  Kumar  Roy,  "Reflection-Free  Per- 
mutations, Rosary  Permutations,  and  Adja- 
cent Transposition  Algorithms,"  Communi- 
cations of  the  ACM,  volume  16,  number  5, 
May  1973. 

R  A  Davis,  "Permutation  of  Bits  in  a  Bit 
String,"  IBM  Technical  Disclosure  Bulletin, 
volume  16,  number  5,  October  1973. 

E  Kellerman  and  D  J  Lorch,  "Generation  of 
Permutations  and  an  APL  Implementation," 
IBM  Technical  Disclosure  Bulletin,  volume 
15,  number  5,  October  1972. 

M  M  Halpern,  "Permutations,"  Proceedings 
of  the  Fifth  international  APL  Users  Con- 
ference, May  15  thru  18  1973  (Canadian 
Printco  Limited). 

B  M  ZIotnik,  "An  Algorithm  of  Permutation 
Enumeration,"  Avtomatika i  Vychislitel'naya 
Tel^nika,  number  2,  62,  1972. 

S  Even,  Algorithmic  Combinatorics,  Mac- 
millan.  New  York,  1 973,  pages  2  thru  1 1 . 

C  K  Wong  and  D  Coppersmith,  "The  Genera- 
tion of  Permutations  in  Magnetic  Bubble 
Memories,"  IBM  Technical  Report  RC5174, 
IBM  Research,  December  1974,  Yorktown 
Heights,  New  York. 

B  M  ZIotnik  and  V  S  Kogan,  "A  Method  of 
Transforming  Permutation  n!-Codes," /4i/t^o- 
matika  i  Telemekhanika,  number  1,  January 
1975,  pages  139  thru  142. 


F  M  Ives,  "Permutation  Enumeration: 
Four  New  Permutation  Algorithms,"  Com- 
munications of  the  ACM,  volume  19,  num- 
ber 2,  February  1976. 

Nachum  Dershowitz,  "A  Simplified  Loop- 
free  Algorithm  for  Generating  Permutations," 
BIT  15  ]97 5,  pages  158  thru  164. 

Algorithms  in  the  Communications  of  the 
ACM:  71,  86,  87,  102,  115,  202,  235, 
242,  250,  306,  307,  308,  317,  323,  362, 
383. 

Algorithms  in  the  Computer  Journal: 
6,  27,  28,  30. 


Technical  forum  is  a  feature  intended  as  an  interactive 
dialog  on  the  tedinology  ol  personal  computing.  The  subject 
matter  is  open-ended,  and  the  intent  is  to  foster  discussion 
and  comtnunication  among  readers  of  BYTE.  We  ask  that  all 
correspondents  supply  their  full  names  and  addresses  to  be 
printed  with  their  commentaries.  We  also  ask  that  corres- 
pondents supply  their  telephone  numbers. 


TTL-WT 


1 00  Prime  Pieces  of  the  most  needed  TTL  (7400 
series)  contained  in  a  unitized  steel  cabinet  with 
24  transparent  doors.  All  packed  and  clearly 
labeled.  Ready  to  use. 

You  get  20  different  types  (5  of  each)  or  buy  the 
"Designer  TTL  Kit",  40  different  types  (5  of 
each),  200  pieces  of  hard  to  find  TTL  neatly 
packaged  for  your  project. 


aqaa 


(+3.50  shipping) 


The  TTL  Kit 

(20  types,  5  each,  100  total) $39.95 

(-1-3.50  shipping) 
Double  TTL  Kit 

(20  types,  1 0  each,  200  total) $69.95 

(+4.50  shipping) 
Designer  TTL  Kit 

(40  types,  5  each,  200  total) $11 9.95 

(+4.50  shipping) 

ELECTRONIC  PACKING  COMPANY 

Box  581  •  Greenfield,  IN  46140 
(317)462-9511  •  Dealer  inquiries  invited 


Circle  121  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        127 


Technicsl  FopiKn 


TI  Has  Faster  Solutions 


Marvin  A  Larson,  345  Birchwood  Dr,  Moraga  CA  94556 

Before  reading  Mr  Arp's  article,  "The  Power  of  the 
HP-67  Programmable  Calculator,  Part  2"  (April  1979 
BYTE,  page  176),  I  was  under  the  impression  that  the 
Hewlett-Packard  HP-67  and  the  Texas  Instruments  TI59 
programmable  calculators  were  about  equal  in  function, 
utility,  and  calculating  power.  Both  are  "top  of  the  line" 
although  the  HP-67  costs  about  70%  more  than  the  TI59. 

The  procedures  used  by  Mr  Arp  in  writing  his  simul- 
taneous equations  program  can  be  applied,  with  minor 
reprogramming,  to  the  TI59.  The  resulting  program 
would  then  be  capable  of  solving  29  simultaneous  equa- 
tions in  29  unknowns,  as  opposed  to  9  equations  in  9 
unknowns  with  the  HP-67. 

The  TI59  can  use  up  to  100  data  storage  registers,  com- 
pared to  26  registers  for  the  HP-67.  It  can  read/write  data 
from/to  magnetic  cards  in  banks  of  30  values.  Each  card 
can  thus  contain  the  29  coefficients  and  one  constant  term 
for  one  complete  row  of  the  solution  array. 

The  Library  Module  supplied  with  the  TI59  contains  a 
program  for  solving  simultaneous  equations  which  will 
solve  up  to  8  equations  with  8  unknowns,  as  compared  to 
4  equations  with  4  unknowns  for  the  HP-67. 

Mr  Arp  did  not  tell  us  how  much  time  is  required  to 
solve  the  set  of  9  equations  given  in  his  listing  4  (page 
186),  or  the  resultant  accuracy  of  the  solution.  It  appears 
to  involve  one  hundred  or  more  read/write  operations 
from/to  magnetic  cards,  a  considerable  amount  of  exter- 
nal manual  bookkeeping  to  keep  track  of  the  cards,  hand 
copying  of  coefficients,  and  the  like.  My  guess  is  that 
solution  time  is  about  90  minutes,  provided  the  wrong 
card  does  not  slip  in.  With  regards  to  accuracy,  Mr  Arp 
gives  his  solution  results  with  6  digit  values,  but  does  not 
state  the  closure  error  on  back  substitution  in  the 
original  equations. 

For  comparison,  I  tried  the  library  program  in  the 


TI59.  To  reduce  the  problem  to  eight  equations  instead  of 
nine,  I  deleted  cell  9  in  figure  1  (page  180).  This  has  the  ef- 
fect of  deleting  the  ninth  coefficient  of  the  first  eight  equa- 
tions and  the  entire  ninth  equation  of  table  1  (page  180). 

This  was  my  first  experience  with  using  the  TI59  to 
solve  simultaneous  equations,  so  I  read  the  instructions 
carefully.  Then  I  timed  the  operation.  From  the  beginning 
at  the  start  of  data  entry,  to  the  end  after  all  eight 
unknowns  had  been  copied  down,  the  procedure  took 
just  13  minutes. 

All  answers  came  out  as  10  digit  numbers.  On  back 
substitution  all  equations  closed  out  with  a  maximum 
error  of  4.6E  — 9  and  a  mean  absolute  error  of  2.2E  — 9. 
Most  of  the  functions  and  operations  on  Mr  Arp's  "wish 
list"  are  already  available  on  the  TI59.  He  would  be  well 
advised  to  check  out  the  TI59. 

Incidentally,  Texas  Instruments  software  isn't  always 
quite  as  good  as  its  hardware.  The  TI59  has  sufficient 
computing  capacity  to  solve  10  simultaneous  equations  in 
10  unknowns  with  the  program  entered  from  magnetic 
cards,  and  11  equations  in  11  unknowns  with  the  pro- 
gram resident  in  a  library  module.  This  is  with  a  full  set 
of  equations  with  non-zero  values  for  all  coefficients. 


6809  Commentaries, 

Continued... 

Don't  Be  So  Superficial! 

]im  Howell,  5472  Playa  Del  Rey,  San  ]ose  CA  95123 

I  would  like  to  correct  some  statements  made  by  David 
Kemp  concerning  the  6809  microprocessor  in  "Compare 
New  Microprocessors  Carefully"  (Technical  Forum,  May 
1979  BYTE,  page  213). 

The  6809  has  several  more  16  bit  instructions  than 
those  mentioned  by  Mr  Kemp  (ADDD,  SUBD,  and 
CMPD).  The  CMPX,  CMPY,  CMPS,  and  CMPU  instruc- 
tions compare  the  X,  Y,  S,  or  U  register  with  (up  to)  16 
bits  of  data.  The  ABX  instruction  adds  B  (8  bits,  unsign- 
ed) to  X  (16  bits)  putting  the  16  bit  result  into  X. 


c 


Eiil 


c     KIM    ANALOG    INPUT 

Analog  to  Digital  Conversion  System  for  the  KIM  Computer 


Give    ir<e    KIM    U>e   abilit-u    to   sense* 
nieasure*    and   crontrol    tJ-»e   uarld   around 
It    uiiU-t   DAM   SYSTEMS   iMsdule^.    Just   f=-lua 
th*G   KIMSETl    into    the  KIM    to   Set    16 
cH-»3nnels   or    analog    input*    Sc^ew 
teominals    are   Pr-ovided  1*or-    eaolt   cl~kannel 
so   you    can    ^looK    up    Joasticks*    pots>    or 
ufTatever    aF-propriate   sensors   ttou    )-\3ve* 

EacH  of    tt^te    1&    anaioS    inputs*     in 
U-*e    ranae    of    0     to    5.12    volts»     is 
conver  ted    to    a   deciiiial    nund^er    tketueen    0 
and    255   (  20    millivolts   per    count  >• 
Conversion    tin>e    is    100    niicrosconds. 

Tlie   KIMMOD   provides   one   user    port 
as   well    as    a    tiAM   SYSTEMS   port. 

Sof tuare    is    provided. 


1-AIMI81 
I- KIMMOD 
1- CABLE  A24 
I-MANM0D1 
1-POWl 


KIHSET  1 

-  16  ANALOG  INPUTS -e  BITS- TOO  MICnOSEC 


-  34  INCH  INTERCONNECT  CABLE 


POWEfl  MODULE 

KIHSETIo    for  110  VAC    $269 
KIMSETl*    tor  230  VAC    $293 


[  'ss  ]    [  "i-^"  3 


CONNECTICUT     microCOMPUTER,  Inc. 

150  POCQNO  ROAD 
BROOKFIELD,  CONNECTICUT  06S04 

TEL:  (203)  775-9659        TWX:  TLX:  7104560052 


<>PIB<IE€E-4BSI 


128        August  1979  ©  BYTE  Publicahons  Inc 


Circle  78  on  inquiry  card. 


The  major  16  bit  arithmetic  instruction  of  the  6809, 
however,  is  the  Load  Effective  Address  instruction.  This 
instruction  is  actually  four  instructions:  LEAX,  LEAY, 
LEAS,  and  LEAU,  depending  on  which  register  gets  the 
result  of  the  arithmetic.  This  instruction  computes  an  ad- 
dress in  the  same  way  as  the  indexed  addressing  mode, 
but  puts  the  resulting  address  into  a  register  (X,  Y,  S,  or 
U).  Load  Effective  Address  adds  any  one  of  the  registers 
X,  Y,  S,  U,  or  PC  to  any  of  the  following:  a  signed  im- 
mediate value  (5,  8,  or  16  bits),  the  sign-extended  A  or  B 
register,  or  the  D  register  (A  and  B  together  as  a  16  bit 
register),  and  puts  the  result  in  any  of  X,  Y,  S,  or  U  —  not 
necessarily  the  same  as  the  source  register.  The  PC  (pro- 
gram center)  can  actually  be  the  destination  for  such  a 
calculation  using  the  branch  instruction  with  the  indexed 
addressing  mode.  I  think  Mr  Kemp  is  exaggerating  when 
he  states  that  the  user  pays  "heavily"  for  the  generality  of 
being  able  to  transfer  (or  exchange)  any  register  with  any 
(like-sized)  register.  The  designers  of  the  6809  included 
instructions  to  transfer  and  exchange  between  any  pair  of 
the  four  8  bit  registers  A,  B,  DP  (direct  page),  and  CC 
(condition  code),  and  between  any  pair  of  the  six  16  bit 
registers  X,  Y,  S,  U,  D,  and  PC.  Excluding  transfers  or  ex- 
changes of  a  register  with  itself,  this  gives  42  different 
transfers  and  21  different  exchanges.  (TFR  A,B  and  TFR 
B,A  are  different  but  EXG  A,B  and  EXG  B,A  are  the 
same.)  Each  of  these  is  a  2  byte  instruction,  the  first  byte 
specifying  transfer  or  exchange,  and  the  second  byte 
specifying  those  registers  which  are  involved.  It  would 
have  been  possible  to  provide  a  (small)  subset  of  these 
transfers  and  exchanges  as  1  byte  opcodes  at  the  expense 
of  making  some  other  instructions  longer.  Transfers  and 
exchanges  not  provided  for  in  this  scheme  would  take  at 
least  two  instructions  and  two  bytes  (probably  three  of 
each  for  exchange)  and  would  operate  more  slowly  than 
the  2  byte  transfer  or  exchange.  If  some  transfers  and  ex- 
changes are  allowed  and  others  are  not,  the  assembly 
language  programmer  also  has  to  remember  which  ones 
these  are.  Either  scheme  of  register  transfers  and  ex- 
changes would  have  been  possible,  but  since  these  in- 
structions are  not  that  common  in  programs  (falling  into 
the  "11.3%  other"  category),  I  think  the  designers  of  the 
6809  made  the  better  choice. 

I  cannot  comment  much  on  the  6516  mentioned  by  Mr 
Kemp,  since  my  knowledge  of  that  processor  is  limited  to 
what  he  wrote  in  his  letter.  (Are  you  sure  that's  an  8  bit 


processor?)  The  comparison  of  number  of  cycles,  used  in 
the  letter,  is  valid  only  if  the  cycle  times  of  the  two  pro- 
cessors are  the  same  (or  are  related  in  a  known  ratio).  In 
any  event,  comparing  cycle  times  of  some  isolated  in- 
structions does  not  necessarily  indicate  the  relative  speeds 
of  the  two  processors  on  real  programs.  The  6516  may 
have  16  bit  AND,  OR,  and  XOR  instructions,  but  how 
often  would  these  be  used?  As  for  Mr  Kemp's  comment 
that  the  6809  "costs  more"  (more  than  other  8  bit  pro- 
cessors?) because  it  uses  a  larger  piece  of  silicon  and  has 
more  logic  gates  than  other  8  bit  processors,  how  much 
will  a  $20  difference  in  microprocessor  cost  make  in  the 
final  product  cost?  Besides,  doesn't  the  6516  "suffer"  from 
this  same  cost  problem? 


6809  Commentaries, 
continued 


Richard  F  Serge,  655  Lewisville-Vienna  Road, 
Lewisville  NC  27023 


Never,  until  now,  have  I  been  compelled  to  respond  to 
any  magazine  article  I  have  read.  I  refer  to  David  Kemp's 
commentary  "Compare  New  Processors  Carefully"  (May 
1979  BYTE,  page  213). 

As  a  designer  of  microprocessor  systems  I  have  follow- 
ed the  instructions  in  the  title  of  Mr  Kemp's  article  with 
great  care.  In  comparing  the  6809  with  other  processors 
in  its  performance  range,  it  may  take  an  hour  or  so  of 
comparing  data  sheets  to  get  a  feel  for  the  typical  hard- 
ware required,  the  addressing  modes  available,  the 
relative  execution  times,  and  the  number  of  bytes  re- 
quired for  the  more  common  instructions.  To  stop  at  this 
point  and  decide  which  is  "best"  is  the  equivalent  of  flip- 
ping a  coin.  At  this  point  several  passes  through  the 
programming  manuals  are  required,  along  with  a  study 
of  any  other  literature  pertaining  to  the  processors  in 
question. 

Only  after  a  designer  tias  a  thorough  understanding  of 
the  processors'  instruction  set  and  addressing  modes,  and 
how  to  efficiently  utilize  these  features,  can  the  task  of 
careful  comparison  begin.  Recalling  past  design  projects 


AIM  65 

AIM  65  is  fully  assembled,  tested  and  warranted.  With  the  addition  of  a  low  cost,  readily  available  power 
supply,  It's  ready  to  start  working  for  you.  It  has  an  addressing  capability  up  to  65K  bytes,  and  comes 
with  a  user-dedicated  IK  or  4K  RAM. 


•  Thermal  Printer 

•  Full-Size  Alphanumeric  Keyboard 

•  True  Alphanumeric  Display 

•  Proven  R6500  Microcomputer  System  Devices 


•  Built-in  Expansion  Capability 

•  TTY  and  Audio  Cassette  Interfaces 

•  ROM  Resident  Advanced  Interactive  Monitor 

•  Advanced  Interactive  Monitor  Commands 


PRICE:  $375.00, 


(IK  RAM) 

Plus  $4.00  UPS  (shipped  in  U.S.  must  give  street  address),  $10  parcel  post  to  APO's,  FPO's,  Alaska, 
Hawaii.Canada,  $25  air  mail  to  all  other  countries 

We  manufacture  a  complete  line  of  high  quality  expansion  boards.  Use  reader  service  card  to  be  added 
to  our  mailing  list,  or  U.S.  residents  send  $1.00  (International  send  $3.00  U.S.)  for  airmail  delivery  of  our 
complete  catalog. 


ENTERPRISES 

INCORPORATED 


2967  W.  Fairmount  Avenue  •  Phoenix,  AZ  85017  •  (602)  265-7564 


Circle  324  on  inquiry  cara. 


AugusI  1979  ©  BYTE  Publications  Inc        129 


Circle  211  on  inquiry  card. 


n/iMESMnn" 

KEYED  FILE  MANAGEMENT 


Put  data  at  your  fingertips. .  easily  accessed,  displayed  and 
updated  by  key.  Designed  to  meet  all  of  your  data  management 
needs.  lulAGSAlyl'"  allows  you  to  quickly  implement  soptiisticated 
keyed  file  structures  ttirough  simple  CBASIC  statements. 
Standard  MAGSAIul '"features  include  record  retrieval  Willi  random 
by  key.  sequential  by  key.  and  generic  ("wild  card")  searcfi.  and 
complete  compatibility  witti  all  CBASIC  file  facilities.  Each 
tvlAGSAIvl'"  Package  includes  the  lyiAGSAM'"  file  manager. 
MAGSAfvIX'"  tutorial  program,  MAGSAMD'"  file  dump  utility.  User 
Guide.  Reference  Card,  and  one  year  update  service. 
Select  the  version  of  MAGSA(vl'"that  meets  your  requirements.  All 
versions  of  fVIAGSAM'"  are  completely  upward  compatible  and 
may  be  upgraded  at  any  time  for  the  price  difference. 

•  MAGSAM  III'"  —  Ivlost  advanced  version.  Ivlultiple  Key  support 
(any  number  of  keys),  and  RecordandKey  Deletion  with  automatic 
reclamation  of  disk  space $145t 

•  MAGSAM  II'"  —  Single  Key  support  with  full  Delete 
capability  S99t 

•  MAGSAM  I'"  —  Entry  level  version.  Single  Key  support  without 
Delete  capability $75t 

•  User  Guide  only  -  comprehensive  tutorial  and  reference 

manual $15 

Available  for  8"  soft  sector.  Micropolis,  and  TRS-80  disk  formats. 
Requires  CP/M'  or  derivative  and  CBASIC.  Distributed  as  CBASIC 
subroutines  in  source  form. 

Visa  and  Ivlasterchagre  welcome.  Dealer  and  OEM  inquiries 
invited. 


fVlMB 


MICRO  APPLICATIONS  QROUP 

7300  CALDUS  AVENUE 
VAN  NUYS.  CA  91406 


'  Trademark  of  Digital  Researcfi     t  Single  site  license 


and  how  they  could  have  been  implemented  on  the  pro- 
cessors being  compared  is  an  excellent  way  to  make  a  fair 
comparison  (not  just  one  or  two  projects,  but  several). 
The  real  test  is  laying  out  $30  K  for  a  couple  of  develop- 
ment systems  and  actually  doing  it,  but.... 

The  procedure  which  I  have  outlined  is  more  of  a  study 
than  a  comparison.  It  takes  a  long  time,  and  a  concen- 
trated effort  to  be  fair  right  up  to  the  end. 

Although  I  disagree  with  most  of  Mr  Kemp's  article,  I 
take  special  issue  with  the  light  regard  he  appears  to  have 
concerning  the  multitude  of  various  addressing  modes  of- 
fered by  the  '09.  The  difference  between  having  and  not 
having  just  one  of  these  modes  can  very  easily  alter  the 
entire  design  of  a  software  package,  making  the  execution 
times  of  even  most  instructions  seem  like  trivia  compared 
to  what  can  be  saved.  Being  able  to  write  recursive,  posi- 
tion independent  code  with  the  '09  should  also  weigh 
heavily  in  any  comparison  being  attempted  with  the  '09. 

There  is  another  point  I  would  like  to  clarify.  Mr  Kemp 
states  that  "many  6809  instructions  require  4  bytes  to 
specify."  Many  readers  may  have  gone  away  thinking 
"most,"  rather  than  "a  few,"  since  no  further  explanation 
followed.  Motorola  says  that  they  chose  these  4  byte  in- 
structions as  some  of  the  lesser  used  op  codes,  and  I  find 
that  these  4  byte  instructions  occur  about  once  per  page 
of  assembly  listing  (typically  50  lines  of  code).  The  vast 
majority  are  2  bytes. 

I  have  been  designing  with  the  6809  (a  real  part)  since 
mid-March  1979.  The  reason:  it  is  the  most  powerful  8  bit 
MOS  microprocessor.  And  I  do  not  work  for  Motorola.  ■ 


Tumiiig  piograitimeis  into  composeis! 


Buv  this  book  at  your  favorite  computer 

bookstore  or  order  direct  from  BYTE  BOOKS. 

Add  60<:  per  book  to  cover 

postage  and  handling. 


For  the  first  time  hard-to-obtain  computer 
music  has  been  collected  into  one  con- 
venient, easy-to-read  book.  The  BYTE 
Book  of  Computer  Music  combines  the 
best  from  past  issues  of  BYTE  magazine 
along  with  exciting  new  material. 

This  fascinating  book,  edited  by 
Christopher  P.  Morgan,  includes  articles 
discussing  four-part  melodies,  a  practical 
music  interface  tutorial,  electronic  organ 
chips,  and  a  remarkable  program  that 
creates  random  music  based  on  land 
terrain  maps. 

$10.00 

ISBN  0-931718-11-2 


IEI<TEi 


70  Main  St.,  Peterborough,  NH  03458 


130        August  1979  ©  BYTE  Publications  Inc 


Circle  36  on  inquiry  card. 


€t(^(^t^(yuA4j 


mi£j 


inouncement  I.  The  first  eight  Personal 
ograms®from  Aladdin  Automation  are 
aiting  for  you  now  at  your  neighborhood 
imputer  retailer  or  direct  from  Aladdin. 

)w  you  can  get  your  full  share  of  Aladdin 
agic  in  every  one  of  these  Personal 

0  grams'"* : 

^^    ath-Ter-Mind®    A  delightful, 
^^B     educational  learning  experience 
kT   ML,  for  your  pre-school  child  Watch 
e  smile  on  your  child's  face  as  a  correct 
iswer  makes  the  mathematician  smile  on  the 
reen  before  you.  A  nursery  song  also  serves 
a  reward  for  learning  elementary  addition 
td  subtraction.  With  Aladdin's  Math-Ter- 
ind®  your  child's  pathway  to  learning  will  be 
n-filled     .  .  for  both  of  you.  Math-Ter-Mind*. 
le  first  release  from  the  Aladdin  Education® 
;ries  (nursery  song  currently  available  only 

1  Apple  11**  program) 

Lunar  Lander       In  a  controlled 
descent,  you're  |ust  seconds  away 
from  your  first  landing  on  the  cold, 
rbidding  surface  of  the  moon.  As  you 
ivigate  your  delicate  spacecraft  downward  to 
e  safety  of  Moonbase,  you  must  be  ever 
atchful  of  the  dangers  rising  to  meet  you  with 
ich  passing  moment:  a  fuel  level  fast 
)proaching  zero;  deadly  meteor  showers  that 
)me  from  any  direction,  at  any  time:  sheer- 
ced  rock  cliffs  and  rough  terrain;  choosing 
e  correct  landing  pattern  and  rate  of  descent, 
addin's  Lunar  Lander.  Your  chance  to  reach 
jt  and  touch  the  stars  .  ,  .  without  leaving  the 
ifety  and  comfort  of  your  own  chair.  The  first 
lease  from  the  Aladdin  Simulation®  Series. 


Craps      All  eyes  in  the  casino  are 
on  you.  The  dice  are  in  your 
hands.  Lady  Luck  sits  at  your 
shoulder,  whispering  .  .  .  "Just  one  more  time. 
Try  your  luck  just  one  more  time."  You  throw 
.  .     and  watch  the  dice  tumbling  on  the 
screen.  With  Aladdin's  Craps  you  play  against 
the  computer,  so  it's  awfully  tough  to  win.  But 
when  you  do.  it's  an  experience  you're  likely 
never  to  forget.  Craps.  An  exciting,  heart- 
pounding  Personal  Program^.  The  first  release 
from  the  Aladdin  Las  Vegas®  Series. 

Mastermind      A  challenging  game 
of  intrigue,  centuries  old,  that  will 
give  you  full  chance  to  test  your 
powers  of  logic,  deduction  and  reason.  And 
test  them  you  will,  as  you  try  and  solve  the 
computer's  puzzle,  using  clues  as  they're 
provided  one-by-one.  You  control  the  degree  of 
difficulty  in  this  classic  Personal  Program®  that 
offers  one  simple,  yet  all-consuming  challenge: 
beat  the  Mastermind  in  a  direct,  one-on-one 
battle  of  wits.  Aladdin's  Mastermind.  The  first 
release  from  the  Aladdin  Old  Favorites®  Series. 

Tic-Tac-Toe       Five  different  levels 
of  difficulty  allow  a  person  of  any 
age  or  skill  to  take  part  in  this 
relaxing,  enjoyable  game  that  can  act  as  a 
learning  tool,  as  well.  Level  I,  for  example,  is 
suitable  for  children  and  is  excellent  also  for 
teaching  simple  mathematics.  The  computer 
plays  just  about  perfectly  at  Level  V.  Just 
about,  that  is,  so  go  ahead  and  take  your  best 
shot.  See  if  you  can  beat  the  computer  in  this 
traditional  favorite  of  young  and  old  alike. 
Tic-Tac-Toe  Another  first  release  from  the 
Aladdin  Old  Favorites®  Series. 


Jungle  Island®     Shipwrecked  in  a 
raging  storm  at  sea,  miraculously 
you  survive  only  to  find  yourself 
stranded  on  a  seemingly  deserted  jungle 
island.  Without  food,  water  or  supplies  of  any 
kind,  you  begin  to  try  and  find  your  way  to 
safety.  The  computer  will  be  your  eyes  and 
ears  as  you  explore  your  jungle  island  and  all 
the  mysteries  and  dangers  that  lie  in  wait  for 
you.  Jungle  Island®  A  captivating  first 
release  from  the  Aladdin  Adventure®  Series. 

Stix"    Aladdin's  Stix®  can  be 
played  with  2  to  5  piles  of  sticks 
and  between  1  and  1  9  sticks  in 
each  pile.  The  object:  to  be  the  one  to  pick  up 
the  last  stick.  Sounds  simple?  Yes.  but  you're 
playing  against  the  computer.  Take  heart, 
though,  because  you  can  control  the  degree  of 
difficulty  in  this  update  of  the  ancient  game  of 
Nim.  Stix".  Another  first  release  from  the 
Aladdin  Old  Favorites'"  Series. 

Super  Pro  Football®    Here's  your 
chance  to  be  more  than  just  an 
armchair  quarterback.  With 
Aladdin's  Super  Pro  Football®  you  can  replay 
any  Super  Bowl  game,  from  the  first,  between 
Green  Bay  and  Oakland,  to  last  year's  classic 
victory  by  Pittsburgh  over  Dallas.  For  once  you 
can  turn  back  the  clock  and  go  for  that  one  big 
play  that  made  the  difference  between  victory 
and  defeat  in  pro  football's  biggest  game  of  all. 
Super  Pro  Football®.  The  first  exciting  release 
from  the  Aladdin  Super  Pro®  Series. 

Visit  your  neighborhood  computer  retailer  or 
contact  Aladdin  direct  to  get  your  full  share  of 
the  magic  in  Announcement  I,  the  first  eight 
Personal  Programs®  from  Aladdin  Automation. 


ath-Ter-Mind*'  Lunar  Lander  Craps 


Mastermind  Tic-Tac-Toe  Jungle  Island**  Stix'' 


Super  Pro  Football** 


Welcome  to  the  All-New  World  of 
laddin.  And  Get  Ready  to 
lake  Your  Own  Magic 


^^5;^^  A/DDM  AS\OMAWON,  NC. 

^^t^^/AyCow  coMPure?  corr 


3420  Kenyon  Street,  Sle.  131,  San  Diego.  CA  92110 


pyrighi  197B  by  Aladdin  Automation 


Design  and  copy  by  Campbell  Marsh  Graphic  Communications 


Circle  3  on  Inquiry  card. 


BYTE  August  1979         131 


The  Design  of  an  M6800 
LISP  Interpreter 


S  Tucker  Taft 

Harvard  University  Science  Center 

1  Oxford  St 

Cambridge  MA  02138 


The  primary  data  structure  is  the  Hst. 


Anyone  exposed  to  small  computer  systems  has  used  a 
language  interpreter  of  some  sort,  and  certainly  may 
have  thought  about  implementing  their  own  interpreter. 
Unhappily,  implementing  an  interpreter  for  a  complete 
version  of  most  computer  languages  is  a  difficult  and 
time-consuming  job,  unsuitable  for  a  part-time  personal 
computer  enthusiast.  The  language  LISP  provides  a  uni- 
que opportunity  in  this  respect.  The  foundation  for  a 
very  complete  interpreter  can  be  programmed  by  a  single 
person  in  several  months  of  part-time  effort.  As  a  bonus, 
the  resulting  interpreter  provides  the  user  with  a  high 
level  language  in  which  to  express  algorithms. 

The  Language 

From  the  user's  point  of  view,  the  primary  data  struc- 
ture in  LISP  is  the  list.  Every  element  of  a  list  is  either  an 
atom  or  another  list.  An  atom  is  a  primitive  named  ob- 
ject, the  name  being  an  arbitrary  string  of  characters: 

ABC  is  an  atom. 

135  is  an  atom. 

(ABC  135)  is  a  list  of  two  elements,  both  atoms. 

((ABC  135)  XYZ)  is  a  list  of  two  elements,  the  first 

of  which  is  a  list,  the  second  is  an  atom. 

(  0  0  )  is  a  hst  of  two  elements,  both  being  lists  of 

zero  elements.  A  list  of  zero  elements,  the  null  list,  is 

identified  with  the  atom  NIL. 

The  feature  of  the  language  LISP  which  makes  it  at  the 
same  time  a  uniquely  interesting  language,  and  relatively 


About  the  Author 

Tucker  Taft  first  programmed  a  computer  in  9th  grade.  He  spent  the 
following  summers  at  various  programming  jobs  until  he  graduated 
fromHarvard  in  1975  with  a  degree  in  chemistry.  Since  his  graduation, 
Tucker  has  spent  two  years  as  the  full-time  systems  programmer  for 
Harvard's  Student  Timesharing  System,  combined  with  teaching  some 
introductory  computer  courses  at  Harvard. 

Tucker  is  now  starting  a  microcomputer  software  consulting  business 
based  on  a  multilanguage  compiler  being  written  in  LISP.  In  what  is  left 
of  his  free  time,  he  is  found  on  a  squash  or  tennis  court,  in  a  Cambridge 
coffee  shop,  in  a  bookstore,  or  in  a  Chinese  restaurant. 


easy  to  implement,  is  that  all  program  elements  are 
represented  using  these  same  kinds  of  objects:  atoms  and 
list.  Constants,  variables,  expressions,  conditionals,  even 
function  definitions  are  all  represented  using  only  atoms 
and  lists. 

A  value  is  associated  with  each  atom,  allowing  atoms 
to  represent  program  variables  and  constants.  A  sym- 
bolic atom,  like  XYZ,  would  represent  a  variable.  A 
numeric  atom,  like  237,  would  represent  a  constant. 

Operations  on  variables  and  constants,  like  addition, 
or  a  function  call,  are  represented  by  list  expressions: 

(ADD  2  5)  would  represent  the  expression  2  -f  5. 
(SIN  (MUL  2  Y))  would  represent  the  expression 
sin(2y). 

Conditionals,  loops,  and  function  definitions  are  also 
represented  by  list  expressions,  as  illustrated  by  this 
recursive  function  implementing  Euclid's  greatest  com- 
mon divisor  algorithm: 

(DEF  GCD  (LAMBDA  (X  Y) 
(COND 

((GREATER  X  Y)  (GCD  (SUB  X  Y)  Y)) 
((GREATER  Y  X)  (GCD  X  (SUB  Y  X))) 
(TX) 


) 


)) 


This  would  be  equivalent  to  the  Pascal  program: 

function  gcd(x, y.integerj:integer 
begin 

a  x>y  then  gcd  :=  gcd(x-y,  y) 
else 

\i  y> X  then  gcd  :  =  gcd(x,  y~x) 
else 

gcd  :  =  x 
end. 

An  important  difference  to  note  in  the  above  com- 
parison is  that  no  explicit  assignment  to  a  function  return 
value  is  made  in  LISP,  whereas  in  Pascal  one  must  ex- 
plicitly say  gcd  :=  ...  to  specify  the  return  value.  In 
Pascal,  and  most  other  procedural  languages,  a  distinc- 
tion is  made  between  program  statements  and  expres- 
sions. In  such  languages  some  program  statement  must  be 


132        August  1979  ©  BYTE  Publications  Inc 


ONE  PACKAGE  DOES  IT  ALL 

Includes  these  Application  Programs  .  .  . 

Sales  Activity,  Inventory,  Payables,  Receivables,  Check/Expense  Register, 
Library  Functions,  Mailing  Labels,  Appointments,  Client/Patient  Records 


^MICRO-AP  MICRO-AP  MICRO-AP  MICRO- 
i-AP  MICRd-AP  MICRO-AP  MICRO-AP  MICR 
lP   MICRO-AP   MICRO-AP   MICRO-AP   MICRO- 
RO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICR 
O-AP   MICRO-AP   MICRO-AP   MICRO-AP   MICRO- 
ICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICR 
,CRO-AP   MICRO-AP   MICRO-AP   MICRO-AP   MICRO- 
P  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICR 
MICRO-AP   MICRO-AP   MICRO-AP   MICRO-AP   MICRO- 
i-AP  MICRO  AP  MICRO-AP  MICRO-AP  MICRO-AP  MICR 
MICRO-AP   MICRO-AP  MICRO-AP   MICRO- 
^P  MICRO-AP  MICRO-AP  MICRO-AP  MICR 
MICRO-AP   MICRO-AP   MICRO-AP   MICRO- 
\P  MICRO-AP  MICRO-AP  MICRO-AP  MICR 
MICRO-AP   MICRO-AP   MICRO-AP   MICRO- 
\P  MICRO-AP  MICRO-AP  MICRO-AP  MICR 


-ap  micro-ap  m 
:ro-ap  micro-af 
-ap  micro-ap  m 
:ro-ap  micro-af 
-ap  micro-ap  m 

:R0-AP  MICRO-AF 
-AP  MICRO-AP  M 
:R0-AP  MICRO-AF 


)-AP  MICRO-AP  Ml 
RO-AP  MICRO-AP  r 
>-AP  MICRO-AP  Ml 
RO-AP  MICRO-AP  t 
>-AP  MiCRO-AP  Ml 
RO-AP  MICRO-AP  t 
>-AP  MICRO-AP  Ml 
,RO-AP  MICRO-AP  t 


-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  Ml 
;R0-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  R 
-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  Ml 
;R0-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  MICRO-AP  t 


RANDOM,  MULTI-KEY  RECORD  RETRIEVAL  under  CP/M,  CDOS,  IMDOS,  ADOS 


SELECTOR  III  ALLOWS 
INSTANT  RECALL  OF  ANY 
RECORD  USING  ANY  IN- 
FORMATION ITEM  IN  THE 
RECORD.  That  statement 
deserves  re-reading,  be- 
cause that  ability  makes 
SELECTOR  III  the  most 
powerful  Date  Base  Man- 
agement System  in  micro- 
computers today! 

With   SELECTOR  III 

you  can... 

•  define  a  record  format, 
assign  retrieval  keys,  and 
begin  entering  data  in  min- 
utes. 

•  create  sorted  pointers  to 
records  matching  your  spe- 
cif or  range  of  requirements. 

Circle  213  on  inquiry  card. 


•  automatically  generate 
reports  with  control-break 
summaries  and  unlimited 
variety. 

•  bring  an  application  on- 
line  in  hours  instead  of 
months. 

SELECTOR  III  comes  com- 
plete with  eight  application 
programs  that  perform  the 
tasks  listed  at  top  of  page. 
And,  since  it's  distributed  in 
source  code  form,  you  can 
easily  add  subroutines  to  do 
specific  computations  or 
file  updates. 

SELECTOR  III  runs  under 
CBASIC  Vers.  1  or  2,  and  is 
priced  at  $295.  SELECTOR 


111-02  is  dedicated  to  Vers.  2 
only,  runs  about  twice  as 
fast,  and  costs  $345. 

Both  systems  are  available  in 
a  variety  of  OP/M,  diskette 
size  and  density  formats 
including  IBM  8";  North  Star; 
Micropolis;  TRS-80;  Pro- 
cessor Tech  Helios  II;  Altair; 
iOOM;  Dynabyte;  Imsai; 
and  others. 


Available  from  computer  stores  nationwide: 

LIFEBOAT  Associates 

2248  Broadway,  Suite  34, 
New  York,  N.Y.  10024  •  (212)  580-0082 

Or  order  direct  from 

MICRO-AP 

9807  Davona  Drive,  San  Ramon,  CA  94583 
(415)  828-6697 


BYTE  August  1979         133 


(A  B  C)    IS  BUILT    UP  OUT  OF    THREE  DOTTED  PAIRS 


(J(KLM)N)    IS  BUILT   UP  OUT   OF   SIX  DOTTED   PAIRS 


K 


-c 


Figure  1:  In  most  LISP  systems,  lists  are  built  up  out  of  dotted 
pairs  which  are  two  address  cells.  The  left  cell  points  to  the  first 
element  of  a  list,  and  the  right  cell  points  to  the  rest  of  the  list. 
The  letters  in  the  figure  stand  for  atoms.  NIL  is  a  special  atom 
used  to  signify  the  end  of  a  chain  of  dotted  pairs. 


executed  to  specify  the  return  value,  usually  either  a 
return  statement  or  an  assignment  to  the  function  name. 
In  LISP,  and  other  applicative  languages,  no  such  distinc- 
tion is  made.  A  function  is  simply  a  single  expression, 
whose  value  is  the  return  value  of  the  subprogram. 

This  is  made  possible  by  built-in  functions  like  COND 
used  above.  COND  takes  a  list  of  two  element  lists  as 
argument.  It  goes  down  the  list  of  pairs,  evaluating  the 
first  element  of  each  pair.  If  the  result  is  true  (the  atom 
T),  the  result  of  the  entire  COND  is  the  value  of  the  se- 
cond element  of  the  pair.  If  the  value  of  the  first  element 


of  the  pair  is  false  (the  atom  NIL),  COND  proceeds  to  the 
next  pair.  If  COND  reaches  the  end  of  the  list,  the  result 
of  the  entire  COND  is  simply  NIL.  In  the  above  example 
this  would  never  happen  because  the  first  element  of  the 
last  pair  is  the  atom  T  (whose  value  is  always  guaranteed 
to  be  itself,  the  atom  T).  This  is  the  normal  technique  in 
LISP  for  using  the  COND  function. 
The  expression: 

(DEF  GCD  (LAMBDA  (X  Y)... 

defines  the  atom  GCD  to  be  a  function  (or  lambda  ex- 
pression) taking  two  arguments,  to  be  called  X  and  Y  in 
the  body  of  the  definition.  Notice  that  no  explicit 
specification  of  the  type  of  X  or  Y  is  provided.  In  LISP 
any  arbitrary  value,  atom,  or  list  may  be  the  value 
associated  with  an  atom.  In  this  sense  LISP  is  a  typeless 
language.  In  fact  the  type  of  a  value  (ie:  whether  it  is  an 
atom  or  a  list)  is  always  determinable  at  execution  time. 
Functions  must  check  the  types  of  the  values  of  atoms  if 
only  certain  types  are  legal  arguments.  In  the  above 
example  the  calls  on  GREATER  and  SUB  would  fail  if  the 
values  associated  with  X  and  Y  were  not  numeric  atoms. 

CARs  and  CDRs 

Thus  far  we  have  only  shown  how  to  re-express 
algorithms  written  in  a  more  conventional  language,  in 
the  language  LISP.  The  real  power  of  LISP  comes  from  its 
ability  to  directly  manipulate  lists,  a  data  type  not  nor- 
mally accessible  in  other  languages.  Three  primitives, 
CAR,  CDR  (pronounced  could-er),  and  CONS  are  pro- 


Our  MacroFloppy 
goes  twice  the  distance. 


For  %95. 


Introducing  the  Micropolis  MacroFloppv'":1041  and  :1042  disk  drive  sub- 
systems. For  the  S-100/8080/Z-80  bus.  Packing  100%  more  capacity  into  a 
5;4-inch  floppy  disk  than  anyone  else.  143K  bytes,  to  be  exact  For  as  little 
asS695. 

The  MacroFloppy:1041  comes  with  the  Micropolis  Mod  I  floppy  packaged 
inside  a  protective  enciosure  (without  power  suppiy).  And  includes  an  S-100 
controller  Interconnect  cable.  Micropolis  BASIC  User's  Manual.  A  diskette  con- 
taining Micropolis  BASIC,  and  a  compatible  DOS  with  assembler  and  editor 
The  :1041  is  even  designed  to  be  used  either  on  your  desk  top,  or  to  be  inte- 
grated right  into  your  S-100  chassis. 

The  MacroFloppv:1042  comes  with  everything  the  :1041  has,  and  more. 
Such  as  d.c.  regulators,  its  own  line  voltage  power  supply  and,  to  top  it  off, 
a  striking  cover  Making  it  look  right  at  home  just  about  anywhere. 

Both  MacroFloppy  systems  are  fully  assembled,  tested,  burned-in,  and 
tested  again.  For  zero  start-up  pain,  and  long  term  reliability.  They're  also 
backed  up  by  our  famous  Micropolis  facton/  warranty. 

And  both  systems  are  priced  just  right.  $595  for  the  MacroFloppv:1041 
and  $795  for  the  MacroFioppy:1042. 

You  really  couldn't  ask  for  anything  more. 

At  Micropolis,  we  have  more  bytes  in  store  for  you. 

For  a  descriptive  brochure,  in  the  U.S.  call  or  write  Micropolis 
Corporation,  7959  Deering  Avenue,  Canoga  Park,  California  91304.  Phone 
(213)  703-1121. 

Or  better  yet,  see  your  local  dealer 


^^.^c.v^ 


MICROPOLIS 

More  bytes  in  store  for  you. 


134        August  1979  ©  BYTE  Publications  Inc 


vided  for  list  manipulation.  The  function  CAR  takes  a  list 
as  argument,  and  returns  the  first  element  of  the  list, 
which  may  either  be  an  atom  or  another  list.  The  func- 
tion CDR  takes  a  list  as  argument,  and  returns  the  tail  of 
the  list,  that  is,  all  but  the  first  element  of  the  orginal  list, 
as  a  new  list.  The  function  CONS  takes  two  arguments,  a 
new  first  element,  and  the  tail  of  a  list,  and  reconstructs  a 
list,  now  one  element  longer.  For  example: 

Assume  the  atom  X  is  associated  with  the  value: 

(ABC) 
Assume  the  atom  Y  is  associated  with  the  value: 

(THE  CAT  IN  THE  HAT) 
(CAR  X)  would  be  the  atom  A. 
(CDR  Y)  would  be  the  list  (CAT  IN  THE  HAT). 
(CONS  (CAR  X)  (CDR  Y))  would  be  the  list: 

(A  CAT  IN  THE  HAT) 
(CAR  (CDR  X))  would  be  the  atom  B. 

In  general  the  CAR  of  the  CDR  of  a  list  is  its  second  ele- 
ment, and  a  function  called  CADR  is  frequently  defined 
as  a  kind  of  shorthand  for  CAR  of  the  CDR. 

You  might  wonder  what  would  result  if  you  gave  two 
atoms  as  arguments  to  CONS,  rather  than  an  atom  and  a 
list.  In  most  LISP  systems  this  is  in  fact  legal.  The  result 
reveals  the  underlying  representation  used  for  lists  in 
LISP.  In  virtually  all  LISP  systems,  lists  are  built  up  out 
of  dotted  pairs,  two-address  cells,  the  left  cell  pointing  to 
the  first  element  of  a  list,  and  the  right  cell  pointing  to  the 
rest  of  the  list.  This  can  be  diagrammed  schematically  as 
in  figure  1. 


Because  dotted  pairs  are  used  this  way  to  build  up  lists, 
it  is  natural  to  call  the  left  cell  of  a  dotted  pair  the  CAR 
and  the  right  cell  the  CDR.  (In  fact  the  genealogy  of  the 
words  CAR  and  CDR  runs  the  other  way.  Dotted  pairs 
were  used  in  the  initial  implementation  of  LISP,  and  CAR 
and  CDR  referred  to  the  address  field  and  the  decrement 
field  of  a  word  on  the  IBM  704.)  Now  you  can  perhaps 
guess  that  when  you  pass  two  atoms  as  arguments  to 
CONS,  you  simply  get  a  dotted  pair  with  an  atom  in  both 
the  CAR  and  CDR.  For  example: 


A 

B 

would  be  printed  as: 

(A.B) 

The  notation  (A  .  B)  is  used  whenever  the  CDR  of  the  last 
dotted  pair  forming  a  linked  list  is  a  non-NIL  atom.  In 
general  (D  E  F  .  NIL)  would  be  equivalent  to  (D  E  F), 
whereas  (D  E  F  .  G)  could  not  be  expressed  without  the 
dot  notation. 

Given  the  three  primitives  CAR,  CDR,  and  CONS, 
and  understanding  the  underlying  representation  of  lists 
using  dotted  pairs,  it  is  possible  to  write  powerful  list- 
manipulating  programs  in  LISP.  For  example,  suppose  it 
is  desirable  to  edit  a  large  data  structure,  and  change  all 
occurrences  of  the  symbol  APPLE  to  ORANGE.  In  LISP 
we  could  easily  write  a  routine  called  REPLACE  which, 
given  the  data  structure  (ie:  list  structure),  the  original 
symbol  (the  atom  APPLE),  and  the  replacement  symbol 


TM 


MetaFloppy 

The  Micropolis  MetaFloppy"  gives  you  more  than  four  times  the  capacity  of 
anyone  else's  5;^-inch  floppy  Because  it  uses  77  tracks  instead  of  the  usual  35, 

The  field-proven  MetaFloppy  with  thousands  of  units  delivered,  comes 
in  a  complete  family  of  models.  And,  like  our  MacroFloppv™  family  of  disk 
drives,  MetaFloppy  is  designed  for  the  S-100/8080/Z-80  bus. 

For  maximum  capacity,  choose  our  new  MetaFloppy:  1054  system.  Which 
actually  provides  you  with  more  than  a  million  bytes  of  reliable  on-line  stor- 
age. For  less  money  than  you'd  believe  possible. 

The  MetaFloppy:1054  comes  complete  with  four  drives  in  dual  config- 
uration. A  controller  Power  supply  Chassis.  Enclosure.  All  cabling.  A  new  BASIC 
software  package.  And  a  DOS  with  assembler  and  editor  There's  even  a  built- 
in  Autoload  ROM  to  eliminate  tiresome  button  pushing. 

If  that's  more  storage  than  you  need  right  now,  tn/  our 
MetaFloppy:1053,  with  630,000  bytes  on-line.  Or  our  Meta- 
Fioppv:1043,  with  315,000  bytes  on-line.  Either  way  you  can 
expand  to  over  a  million  bytes  on-line  in  easy  stages,  when  you 
need  to.  Or  want  to. 

In  other  words,  if  your  application  keeps  growing,  we've  got 
you  covered.  With  MetaFloppy 

The  system  that  goes  beyond  the  floppy 

For  a  descriptive  brochure,  in  the  U.S.  call  or  write  Micropolis 
Corporation,  7959  Deering  Avenue,  Canoga  Park,  California  91304 
Phone  (213)  703-1121. 

Or  better  yet,  see  your  local  dealer 

MICROPOLIS" 

More  bytes  in  store  for  you, 


goes 
beyond 


August  1979  ©  BYTE  Publications  Inc        135 


(the  atom  ORANGE),  would  go  through  the  structure 
and  do  the  replacement,  using  itself  recursively  to  do  the 
replacement  in  all  sublists  of  the  list  structure: 

(DEF  REPLACE  (LAMBDA  (STRUC  OLD  NEW) 
(COND 

((EQ  STRUC  OLD)  NEW) 
((ATOM  STRUC)  STRUC) 
(T  (CONS 

(REPLACE  (CAR  STRUC)  OLD  NEW) 
(REPLACE  (CDR  STRUC)  OLD  NEW) 
)) 
) 
)) 

Notice  how  the  first  two  lines  of  the  COND  allow  for 
the  possibility  that  the  input  data  structure  is  simply  an 
atom  (which  may  or  may  not  be  equal  to  the  atom  to  be 
replaced).  In  addition,  notice  that  the  entire  body  of  this 
function  definition  is  a  single  COND,  just  as  it  was  in  the 
GCD  example  given  above.  This  is  frequently  true  in 
LISP  programs.  Finally,  notice  how  the  function  simply 
passes  the  buck  to  recursive  calls  on  itself  if  the  STRUC 
argument  is  not  an  atom,  CONSing  together  the  results 
of  the  two  inner  calls.  The  reader  is  encouraged  to  go 
through  an  example  of  the  execution  of  this  function 
when  the  argument  OLD  is  the  atom  APPLE,  the  argu- 
ment NEW  is  the  atom  ORANGE,  and  the  argument 
STRUC  is  the  list  structure: 

(AN  (APPLE  A  DAY)  KEEPS  (THE  (APPLE  MAN) 

BUSY)) 
The  result  should  be: 

(AN  (ORANGE  A  DAY)  KEEPS  (THE  (ORANGE 

MAN)  BUSY)) 
If  STRUC  were: 

(PEAR  BANANA  .  APPLE) 
the  result  should  be: 

(PEAR  BANANA  .  ORANGE) 

Other  kinds  of  list-manipulating  programs  which  are 
relatively  easy  to  write  in  LISP,  but  very  difficult  in  more 
conventional  languages,  include  formula  manipulation 
programs  which  might  take  in  the  list  representation  for  a 
function  (eg:  (SIN  (MUL  2  X))  ),  and  return  the  list 
representation  for  its  derivative  according  to  the  rules  of 
the  calculus  (eg:  (MUL  2  (COS  (MUL  2  X)))  ). 

The  author's  system  is  being  used  for  the  development 
of  a  compiler/interpreter  system  which  generates  the  list 
representation  for  a  program  written  in  a  programming 
language,  and  then  either  interprets  it  directly,  or 
generates  the  list  of  machine  language  statements  to  im- 
plement the  program  on  a  particular  microcomputer. 
LISP  makes  such  an  undertaking  quite  straightforward 
(although  not  trivial,  unfortunately!). 

LISP  Interpreter 

Because  programs  are  data  objects  (list  structures)  in 
LISP,  the  same  routines  used  to  read  and  print  data  ob- 
jects may  be  used  to  read  and  print  programs.  Further- 
more user  functions,  like  a  general  list  editor,  can  be  used 
also  to  edit  programs.  This  uniformity  vastly  simplifies 
the  task  of  writing  an  interpreter  for  LISP.  Only  three 
basic  modules  need  be  produced:  READ,   EVAL,  and 


PRINT  .  READ  accepts  a  LISP  list  expression  from  the 
terminal,  in  full  parenthesized  notation,  and  builds  the 
internal  representation  of  the  list,  sometimes  called  a 
forum.  EVAL  takes  a  form  as  its  single  argument,  and 
evaluates  the  form  according  to  the  LISP  convention  that 
the  first  element  of  such  a  list  specifies  the  function,  with 
the  rest  of  the  list  as  arguments. 

The  result  of  EVAL  is  another  form.  (The  term  form  is 
sometimes  reserved  for  LISP  expressions  which  are  legal 
input  to  EVAL.  The  term  S-expression  covers  all  types  of 
lists,  whether  or  not  the  first  element  is  a  legal  function 
name.  Within  this  paper,  form  will  be  used  to  refer  to  the 
internal  representation  of  any  type  of  LISP  expression.) 

PRINT  takes  a  form  as  its  argument,  and  types  it  on 
the  terminal  in  fully  parenthesized  form.  The  top  level 
loop  of  the  LISP  interpreter  simply  prompts  the  user  for 
input  (  —  >  is  the  LISP  prompt),  READs  in  the  users  in- 
put, EVALs  the  resulting  form,  and  PRINTs  the  result  of 
EVAL.  In  a  conventional  high  level  language  syntax,  this 
would  be: 

while  true  do  begin 

patomC'—  >  "); 

form  :  =  read(  ); 
form  :  =  eval(form); 
print(form) 
end. 

or  in  M6800  assembly  language: 

BIGLUP  LDX     PRMPAT     get  prompt  atom 
JSR       PATOM       print  the  atom 
JSR      READ  read  the  form  typed  in 

*  result  now  in  M6800  x-register 

JSR      EVAL  eval  the  form 

*  result  of  EVAL  back  in  x-register 

JSR      PRINT  print  the  form 

BRA    BIGLUP  and  loop  around 

PATOM  is  a  subroutine,  also  called  by  PRINT,  when  a 
form  is  known  to  be  an  atom.  In  an  assembly  language 
implementation,  it  would  be  very  convenient  to  pass 
forms  in  the  M6800  index  (X)  register.  This  register  is  16 
bits  long,  so  it  requires  that  forms  be  only  16  bits.  Some 
representation  must  be  chosen  for  all  LISP  objects  so  that 
a  single  16  bit  number  may  uniquely  specify  any  ar- 
bitrary object.  Dotted  pairs  are  used  to  represent  lists. 
Dotted  pairs  hold  two  forms,  a  CAR  and  a  CDR,  so  they 
must  be  32  bit  objects.  A  natural  choice  is  to  allocate  4 
consecutive  M6800  memory  bytes  for  dotted  pairs,  and 
specify  dotted  pairs  by  the  address  of  their  first  byte.  This 
means  that  any  two  different  dotted  pairs  will  be  easily 
differentiated  by  the  forms  that  specify  them. 

This  still  leaves  the  problem  of  deciding  on  an  internal 
representation  for  atoms,  including  symbolic  atoms, 
numeric  atoms,  and  NIL.  In  the  author's  LISP  system 
only  two  items  of  information  are  needed  for  each  sym- 
bolic atom,  the  string  of  characters  which  are  the  print 
name  of  the  atom,  and  the  value  currently  associated 
with  the  atom  (which  is  an  arbitrary  form).  Again  a  4 
byte  representation  is  chosen,  with  the  first  two  bytes 
used  as  a  memory  address  pointing  to  the  first  character 
of  the  print  name,  and  the  third  and  fourth  bytes  used  to 
hold  the  value  (a  form)  of  the  atom.  Now  the  address  of 

Text  continued  on  page  140 


136        August  1979  ©  BYTE  Publications  Inc 


Let  your  LSI-11*  break 
the28K  K 


With  our  Bank-Switchirig  family 


In  LOCAL  mode  our  memory  is  functionally  just 
like  DEC  memory.  But  when  you  run  out  of 
memory  space  you're  not  lost.  Add  an  inex- 
pensive Bank-Switch  Controller  (BSC-256)  and 
you  can  go  to  two  megabytes.  Add  another 
and  go  to  four  megabytes. 
So  don't  get  boxed  in  with  other  brands  of 
LSI-1 1  *  memory.  Break  free.  Join  the  family: 


RMA-032 

32K  by  16  bit  RAM. 
On-board  refresh 

$1200 
(Single  qty.) 

RMS-016 

16K  by  16  bit  ROM. 
(Intel  2716) 

$300 
(Single  qty.) 

BSC-256 

The  Bank-Switch 

$300 

Controller 

(Single  qty) 

Substantial  quantity  discounts  are  available.  For  a  free 
copy  of  our  Bank-Switching  manual,  call  or  write  on  your 
company  letterhead. 

Digital  Pathways  Inc. 

4151  fJliddlefield  Road 

Palo  Alto,  CA  94306 

(415)  493-5544 

^Registered  trademark  of  Digital  Equipment  Corporation 


DIGITAL  PATHWAYS 


Circle  86  on  inquiry  card. 


BYTE  August  1979         137 


PET  /  TRS-80  /  APPLE:  Personal  Software  brings  you  the  finest! 

Ml 


CHESS 

The  Industry's  First 

Gold  Cassette 

Over  50,000  Sold 


MICROCHESS  is  the  industry's  best  selling  computer  game.  And 
no  wonder— because  MICROCHESS  gives  you  more  than  just  a 
chessplaying  program:  A  convenient,  foolproof  set  of  commands 
and  error  checks ...  complete  instructions  in  a  SYz"  by  8'/2"  booklet ... 
a  cassette  that's  guaranteed  to  load,  with  disk  versions  coming 
soon  ...  and  several  levels  of  difficulty  to  challenge  you  not  just 
once,  but  time  after  time.  It's  available  through  well  over  three 
hundred  computer  stores  and  many  mail  order  sources  ...  always 


originating  from  Personal  Software.  What's  more,  every  Personal 
Software  product  is  selected  to  give  you  these  same  benefits  of 
easy  availability,  reliable  cassettes,  readable  documentation,  a 
carefully  thought  out  user  Interface  ...  and  most  important, 
continuing  challenge  and  enjoyment,  not  just  once  but  time  after 
time.  If  you  haven't  already,  order  your  own  gold  cassette; 
MICROCHESS,  by  Peter  Jennings,  for  8K  PETs,  16K  APPLES,  and 
4K  Level  I  and  II  TRS-BOs $19.95 


TIME 
TREK 

A  Tour  De  Force 

In  Real  Time  Action 

Strategy  Games 


TIME  TREK  by  Brad  Templeton  for  8K  PETs  and  Joshua  Lavlnsky 

for  4K  Level  I  and  II  TRS-BOs  adds  a  dramatic  new  dimension  to  the 
classic  Star  Trek  type  strategy  game:  REAL  TIME  ACTION!  You'll 
need  fast  reflexes  as  well  as  sharp  wits  to  win  in  this  constantly 
changing  game.  Be  prepared — the  Klingons  will  fire  at  you  as  you 
move,  and  will  move  themselves  at  the  same  time,  even  from 
quadrant  to  quadrant — but  with  practice  you  can  change  course 
and  speed,  aim  and  fire  in  one  smooth  motion,  as  fast  as  you  can 
press  the  keys.  Steer  under  power  around  obstacles — evade  enemy 


shots  as  they  come  towards  you — lower  your  shields  just  long 
enough  to  fire  your  phasers,  betting  that  you  can  get  them  back  up 
in  time!  With  nine  levels  of  difficulty,  this  challenging  game  is  easy 
to  learn,  yet  takes  most  users  months  of  play  to  master.  ADD 
SOUND  EFFECTS  with  a  simple  two-wire  hookup  to  any  audio 
amplifier;  the  TRS-80  also  produces  sound  effects  directly  through 
the  keyboard  case,  to  accompany  spectacular  graphics 
explosions!  You  won't  want  to  miss  this  memorable  version  of  a 
favorite  computer  game $14.95 


BLOCKADE  by  Ken  Anderson  for  4K 

Level  I  and  II  TRS-80s  is  a  real  time 
action  game  for  two  players,  with  high 
speed  graphics  in  machine  language. 
Each  player  uses  four  keys  to  control 
the  direction  of  a  moving  wall.  Try  to 
force  your  opponent  into  a  collision 
without  running  into  a  wall  yourself!  A 
strategy  game  at  lower  speeds, 
BLOCKADE  turns  into  a  tense  game  of 
reflexes  and  coordination  at  faster 
rates.  Play  on  a  flat  or  spherical  course 
at  any  of  ten  different  speeds.  You  can 
hear  SOUND  EFFECTS  through  a 
nearby  AM  radio — expect  some 
razzing  if  you  lose! 14.95 


GRAPHICS  PACKAGE  by  Dan  Fylstra 
for  8K  PETs  includes  programs  for  the 
most  common  'practical'  graphics 
applications;  PLOTTER  graphs  both 
functions  and  data  to  a  resolution  of  80 
by  50  points,  with  automatic  scaling 
and  labeling  of  the  axes;  BARPLOT 
produces  horizontal  and  vertical, 
segmented  and  labeled  bar  graphs; 
LETTER  displays  messages  in  large 
block  letters,  using  any  alphanumeric 
or  special  character  on  the  PET 
keyboard;  and  DOODLER  can  be  used 
to  create  arbitrary  screen  patterns  and 
save  them  on  cassette  or  in  a  BASIC 


ELECTRIC  PAINTBRUSH  by  Ken 
Anderson  for4K  Level  I  and  IITRS-BOs: 
Create  dazzling  real  time  graphics 
displays  at  speeds  far  beyond  BASIC, 
by  writing  'programs'  consisting  of 
simple  graphics  commands  for  a 
machine  language  interpreter. 
Commands  let  you  draw  lines,  turn 
corners,  change  white  to  black,  repeat 
previous  steps,  or  call  other  programs. 
The  ELECTRIC  PAINTBRUSH  manual 
shows  you  how  to  create  a  variety  of 
fascinating  artistic  patterns  including 
the  one  pictured.  Show  your  friends 
some  special  effects  they've  never 
seen  on  a  TV  screen! $14.95 


program $14.95 

WHERE  TO  GET  IT:  Look  for  the  PERSONAL  SOFTWARETM  display  rack  at  your  local  computer  store.  If  you  can't  find  the  product  you 
want,  you  can  order  direct  with  your  VISA/Master  Charge  card  by  dialing  1  -800-325-6400  toll  free  (24  hours,  7  days;  in  Missouri,  dial 
1-800-342-6600).  If  you  have  questions,  please  call  408-745-7841 .  Or  you  can  mail  your  order  to  the  address  below. 


Personal  Software 

592  Weddell  Drive 
Sunnyvale,  Calif.  94086 


TM 


138       BYTE  Augusl  1979 


Circle  302  on  inquiry  card. 


Look  for  Personal  Software™ products  at  the  dealer  nearest  you! 


ALABAMA 

BYTE  SHOP 

Hunlsville.  At  35805 

COMPUTERLAND 

HunlSBille,  SL  35805 

CPU,  INC. 

Monlgomefy,  AL  36104 

THE  LOGIC  STORE 

Opelika.AL  36801 

ALASKA 

ALPHA  ELECTRONICS 

AnchoraEc  AK  99503 

ARIZONA 

MILLET'S  TV  S  RADIO 

Mesa,  AZ  85204 

PERSONAL  COMPUTER  PLACE 

Mesa.  AZ  85202 

COMPUTERLAND  OF  PHOENIX 

Phoenix,  U  85016 

COMPUTER  SHOWROOM 

Tucson.  A2  85710 

ARKANSAS 

COMPUTERUND 

Lillle  Rock,  AR  72212 

DATACOPE 

Liltle  Rock.  AR  72204 

CALIFORNIA 

JAY-KERN  ELECTRONICS 

Bakerslield,  CA  93305 

BYTE  SHOP 

Bufbanli.  CA  91506 

SILVER  SPUR 

Chmo.  CA  91710 

BYTE  SHOP  Of  SACRAMENTO 

Cilrus  Heights,  CA  95610 

COAST  COMPUTER  CENTER 

Cosla  Mesa,  CA  92627 

CAPITOL  COMPUTER  SYSTEMS 

Davis.  CA  95616 

COMPUTERUND  SAN  DIEGO  EAST 

El  Caion.  CA  92020 

COMPUTERUND  OF  EL  CERRITO 

El  Ccrnio,  CA  94530 

COMPUTERWARE 

Encmilas.  CA  92024 

BUSINESS  ENHANCEMENT 

COMPUSERVICE 

Escondido,  CA  92027 

CHANNEL  DATA  SYSTEMS 

Golela.  CA  93017 

RAINBOW  COMPUTING 

Granada  Hills.  CA  91344 

JADE  COMPUTER  PRODUCTS 

Hanlhoine.  CA  90250 

BYTE  SHOP  Of  HAYWARD 

Haywan).  CA  94541 

COMPUTERUND  Of  HAYWARD 

Hayward.  CA  94541 

COMPUTERUND  Of  WEST  LA 

Inglemood.  CA  90302 

PROFESSIONAL  COMPUTER  STORE 

La  Ciescenla.  CA  91214 

COMPUTER  COMPONENTS 

Of  SOUTH  BAY 

Lawndale.  CA  90260 

COMPUTERUND  Of  SOUTH  BAY 

Lawndale.  CA  90260 

A-VIDD  ELECTRONICS 

Long  Beach,  CA  90815 

COMPUTERLAND 

Los  Alios,  CA  94022 

BYTE  SHOP 

Mounlain  View,  CA  94040 

HOBBY  WORLD  ELECTRONICS 

Northridge,  CA  91324 

COMPUTERS-MADEEASY 

Palmdalc,  CA  93550 

BYTE  SHOP  Of  PUCENTIA 

Placentia,  CA  92670 

COMPUTER  CENTER 

Riveiside,  CA  92503 

CAPITOL  COMPUTER  SYSTEMS 

Sacramenlo.  CA  95821 

COMPUTERUND 

San  Bernardino,  CA  92404 

COMPUTER  AGE  INC. 

San  Diego,  CA  92111 

COMPUTERUND  Of  SAN  DIEGO 

San  Diego,  CA  92111 

COMPUTER  MERCHANT 

San  Diego,  CA  92115 

COMPUTERUND  Of 

SAN  FRANCISCO 

San  Francisco,  CA  94105 

VIDEO  GAMES  &  COMPUTERS 

San  Francisco,  CA  94118 

VILLAGE  ELECTRONICS 

San  Francisco,  CA  94121 

COMPUTERUND  OF  SAN  JOSE 

San  Jose,  CA  95129 

COMPUTERUND  ICenlcal) 

San  Leandro,  CA  94577 

BYTE  SHOP 

San  Luis  Obispo,  CA  93401 

MARIN  COMPUTER  CENTER 

San  Ralael,  CA  94903 

ADVANCED  COMPUTER  PRODUCTS 

Santa  Ana,  CA  92705 

COMPUTER  CITY 

Santa  Ana.  CA  92704 

BYTE  SHOP 

Santa  Clara,'  CA  95051 

COMPUTER  FORUM 

Santa  Fe  Springs,  CA  90670 

Circle  302  on  inquiry  card. 


THE  COMPUTER  STORE 

Santa  Monica,  CA  90401 

SANTA  ROSA  COMPUTER  CENTER 

Sania  Rosa.  CA  95404 

BYTE  SHOP 

Suisun,  CA  94585 

COMPUTERS  PLUS 

Sunnyvale,  CA  94087 

BYTE  SHOP  OF  TARZANA 

Tarzana,  CA  91356 

COMPUTERLAND  Of 

THOUSAND  OAKS 

Thousand  Oaks.  CA  91360 

SMALL  SYSTEM  SOfTWARE 

Thousand  Oaks,  CA  91360 

COMPUTER  COMPONENTS 

Van  Nuys.  CA  91411 

COMPUTERUND 

Walnut  Creek,  CA  94598 

BYTE  SHOP 

Weslminslei,  CA  92683 

COMPUTER  COMPONENTS  Of 

ORANGE  COUNTY 

Westmnsler,  CA  92683 

COLORADO 

BYTE  SHOP 

Boulder,  CO  80301 

COMPUTERUND 

Colorado  Springs.  CO  80917 

AMPTEC 

Denver.  CO  80216 

COMPUTERUND 

Denver,  CO  80222 

BYTE  SHOP 

Englewood,  CO  80110 

MICRO  WORLD  ELECTRONIX 

Lakewood,  CO  80226 

CONNECTICUT 

COMPUTERUND  OP  fAIRflELO 

Fairlield,  CT  06430 

JRV  COMPUTER  STORE 

Hamden,  CT  06518 

THE  COMPUTER  STORE 

Hartlord.  CT  06103 

COMPUTER  UB 

New  London,  CT  06320 

THE  COMPUTER  STORE 

Windsor  Locks,  CT  06096 

WASHINGTON  DC. 

COMPUTER  CABLEVISION 

Washington.  D.C.  20007 

FLORIDA 

COMPUTERUND 

Boca  Raton.  FL  33432 

THE  COMPUTER  STORE 

Bradcnton.  FL  33505 

THE  COMPUTER  STORE 

Clearwater.  FL  33516 

TRANS-DATA  CORP 

Coral  Gables.  FL  32134 

UCATAN 

Destin.  FL  32541 

BYTE  SHOP 

Fort  Lauderdale.  FL  33334 

COMPUTERUND 

Fort  Lauderdale,  FL  33308 

COMPUTERS  FOR  YOU 

Fort  Lauderdale,  FL  33312 

DATA  MOVERS 

fort  Meyers,  fL  33901 

SOUND  IDEAS  BYTE  SHOPPE 

Gainesville,  fL  32601 

focus  SCIENTIfIC  ENTERPRISES 

Miami,  FL  33132 

GRICE  ELECTRONICS 

Pensacola,  FL  32589 

COMPUTER  AGE 

Pompano  Beach,  FL  33062 

PAPERBACK  BOOKSMITH 

Sarasota,  FL  33581 

AMF  ELECTRONICS 

Tampa,  FL  33612 

MICRO  COMPUTER  SYSTEMS 

Tampa.  FL  33609 

COMPUTER  CENTER  Of 

PALM  BEACHES 

West  Palm  Beach.  FL  33409 

GEORGIA 

ADVANCE  COMPUTER  TECHNOLOGIES 

Atlanta.  GA  30328 

COMPUSHOP 

Atlanta.  GA  30342 

DATAMART 

Atlanta.  GA  303O5 

THE  LOGIC  STORE 

Columbus.  GA  31906 

COMPUTERLAND  Of  ATLANTA 

Smyrna.  GA  30080 

HAWAII 

COMPUTERUND 

Honolulu.  HI  96813 

MICROCOMPUTER  SYSTEMS 

Honolulu.  HI  96813 

RADIO  SHACK  (Dealer) 

Lihue.  HI  96766 

IDAHO 

NORTHWEST  COMPUTER  CENTER 

Boise.  ID  83704 

ILLINOIS 

COMPUTERUND  Of 

ARLINGTON  HEIGHTS 

Arlington  Heights.  IL  03904 

FARNSWORTH  COMPUTER  CENTER 

Aurora.  IL  60505 


KAPPELS  COMPUTER  STORE 

Belleville.  IL  62220 

DOWCOM 

Carbondale,  IL  62901 

BYTE  SHOP 

Champaign.  IL  61820 

THE  ELEKTRIK  KEYBOARD 

Chicago,  IL  60614 

EMMANUEL  B.  GARCIA  JR. 

AND  ASSOCIATES 

Chicago,  IL  60613 

PERSONAL  COMPUTER 

Chicago.  IL  60611 

VIDEO  ODYSSEY 

Deerheld.  IL  60015 

COMPUTERUND 

Downers  Grove.  IL  60515 

COMPUTER  STATION 

Granite  City.  IL  62040 

ORCUTT  BUSINESS  MACHINES 

La  Salle.  IL  61301 

ILLINI  MICROCOMPUTERS 

Naperville,  IL  60540 

COMPUTERUND  OF  NILES 

Niles.  IL  60648 

COMPUTERUND 

Oak  Lawn.  IL  60453 

BIES  SYSTEMS 

Oak  Park.  IL  60302 

COMPUTERUND  OF  PEORIA 

Peoria,  IL  61614 

WALLACE  ELECTRONICS 

Peoiia,  IL  61614 

DATA  DOMAIN 

Schaumburg,  IL  60195 

INDIANA 

DATA  DOMAIN  OF  FORT  WAYNE 

Fort  Wayne,  IN  46805 

HOME  COMPUTER  CENTER 

Indianapolis,  IN  46220 

PUBLIC  COMPUTING 

Lalayette,  IN  47904 

COMPUTER  CENTER 

So  Bend,  IN  46637 

IOWA 

SYNCHRONIZED  SYSTEMS 

Des  Moines.  lA  50310 

COMPUTER  SHOP 

Spencer.  lA  51301 

THE  COMPUTER  CENTER 

Waterloo.  lA  50701 

KANSAS 

THE  COMPUTER  ROOM 

Overland  Park.  KS  66212 

PERSONAL  COMPUTER  CENTER 

Overland  Park,  KS  66206 

COMPUTER  SYSTEMS  DESIGN 

Wichita,  KS  67214 

KENTUCKY 

BARNEY  MILLER'S  INC 

Leiington,  KY  40507 

LOUISIANA 

COMPUTER  SHOPPE 

Metaire,  LA  70002 

MARVLAND 

COMPUTERUND 

Rockville,  MD  20855 

COMPUTER  WORKSHOP 

Rockville,  MD  20852 

COMPUTERS  ETC 

Towson,  MD  21204 

COMPUTERS  UNLIMITED 

Towson,  MD  21204 

MASSACHUSETTS 

THE  COMPUTER  STORE 

Burlington,  MA  01803 

THE  COMPUTER  STORE 

Cambridge,  MA  02139 

CPU  SHOP 

Charleslown,  MA  02129 

MAD  HAHER  SOfTWARE 

Dracul,  MA  01826 

NEW  ENGLAND  ELECTRONICS 

Needham.  MA  02194 

MICHIGAN 

NEWMAN  COMPUTER  EXCHANGE 

Ann  Arbor.  Ml  48104 

NEW  DIMENSIONS  IN  COMPUTING 

East  Lansing  Ml  48823 

COMPUTER  HOUSE  DIV 

Jackson.  Ml  49202 

COMPUTERUND  Of 

GRAND  RAPIDS 

Kenlwood.  Ml  49508 

COMPUTRONIX 

Midland.  Ml  48640 

COMPUTER  MART 

Cliwson.  Ml  48017 

TBI  CITY  COMPUTER  MART 

Saginaw.  Ml  48603 

COMPUTERUND 

Soulhheld.  Ml  48034 

LEVEL  FOUR  PRODUCTIONS 

Westland.  Ml  48185 

MINNESOTA 

COMPUTERUND 

Bloomington,  MN  55431 

ZIM  COMPUTERS  INC. 

Brooklyn  Center.  MN  55429 

MINN.  MICRO  SYSTEMS 

Minneapolis.  MN  5'   54 

MISSISSIPPI 

OXfORD  SOfTWAR      0. 

Oilord.  MS  38655 


MISSOURI 

fORSYTHE  COMPUTERS 

Clayton.  MO  63105 

COMPUTER  COUNTRY 

Florissant.  MO  63031 

FUTUREWORLD.  INC. 

St.  Louis.  MO  63131 

GREATEST  GRAPHICS 

Sprmglield.  MO  65804 

NEBRASKA 

OMAHA  COMPUTER  STORE 

Omaha.  NE  68127 

NEVADA 

CENTURY  23 

Las  Vegas.  NV  89102 

HOME  COMPUTERS 

Las  Vegas.  NV  89109 

NEW  HAMPSHIRE 

TRS-80  SOfTWARE  EXCHANGE 

Millord,  NH  03055 

COMPUTERUND  Of  NASHUA 

Nashua.  NH  03060 

BITS,  INC, 

Peterborough,  NH  03458 

NEW  JERSEY 

COMPUTER  UB  Of  NJ 

Budd  Lake.  NJ  07828 

COMPUTER  EMPORIUM 

Cherry  Hill.  NJ  08002 

COMPUTER  MART  OF  NJ 

Iselm.  NJ  08830 

MSM  ELECTRONICS 

Medlord.  NJ  08055 

COMPUTERUND 

Morristown.  NJ  07960 

COMPUTERUND 

Paramus,  NJ  07652 

COMPUTER  NOOK 

Pine  Brook.  NJ  07058 

COMPUTER  CORNER 

Pompton  Lakes,  NJ  07442 

COMPUTER  ENCOUNTER 

Princeton.  NJ  08540 

TYPTRONIC  COMPUTER  STORE 

Ramsey.  NJ  07446 

STONEHENGE  COMPUTER  CO. 

Summit,  NJ  07901 

NEW  YORK 

COMPUTERUND 

Bullalo,  NY  14150 

COMPUTERUND 

Carle  Place,  NY  11514 

COMPUTER  SHOP  OF  SYRACUSE 

De  Will,  NY  13214 

THE  COMPUTER  TREE 

Endwell,  NY  13760 

COMPUTERWORLD  INC 

Great  Neck,  NY  11021 

LONG  ISLAND  COMPUTER 

GENERAL  STORE 

Lynbrook,  NY  11563 

COMPUTER  MICROSYSTEMS 

Manhasset,  NY  1 1030 

COMPUTER  SHOPPE 

Middle  Island,  NY  11953 

ARISTO-CRAFT 

New  York,  NY  10001 

THE  COMPUTER  FACTORY 

New  York,  NY  10017 

COMPUTER  MART  OF  NEW  YORK 

New  York,  NY  10016 

DATEL  SYSTEMS 

New  York,  NY  10036 

AUTOMATIC  SYSTEMS 

Poughkeepsie,  NY  12603 

COMPUTER  HOUSE 

Rochester.  NY  14609 

THE  COMPUTER  STORE 

Rochester,  NY  14618 

HOME  COMPUTER  CENTER 

Rochester.  NY  14607 

THE  COMPUTER  CORNER 

White  Plains.  NY  10601 

READOUT  COMPUTER  STORE 

Williamsville,  NY  14221 

NORTH  CAROLINA 

BYTE  SHOP 

Charlotte.  NC  28212 

COMPUTERUND 

Charlotte,  NC  28205 

COMPUTER  ROOM 

Charlotte,  NC  28203 

FUTUREWORLD 

Durham,  NC  27707 

BYTE  SHOP 

Greensboro.  NC  27401 

MICROCOMPUTER  SERVICES 

Hickory.  NC  28601 

BYTE  SHOP  Of  RALEIGH 

Raleigh.  NC  27605 

OHIO 

BASIC  COMPUTER  SHOP 

Akron.  OH  44314 

INDUCTIVE  COMPONENTS 

Amelia.  OH  45102 

CINCINNATI  COMPUTER  STORE 

Cincinnati.  OH  45246 

21ST  CENTURY  SHOP 

Cincinnati.  OH  45202 

DIGITAL  DESIGN 

Cincinnati.  OH  45202 

CYBER  SHOP 

Columbus.  OH  43227 


MICRO  MINI  COMPUTER  WORLD 

Columbus,  OH  43213 

COMPUTER  SOLUTIONS 

Dayton,  OH  45409 

DAYTON  COMPUTER  MART 

Dayton,  OH  45409 

ASTRO  VIDEO  ELECTRONICS 

Lancaster.  OH  43130 

COMPUTERUND  Of  CLEVELAND 

Maylield  Heights.  OH  44121 

RADIO  SHACK  (Dealer) 

St.  Clairsville,  OH  43950 

OKLAHOMA 

HIGH  TECHNOLOGY 

Oklatioma  City.  OK  73106 

MICROLITHICS 

Oklahoma  City.  OK  73127 

HIGH  TECHNOLOGY 

Tulsa.  OK  74129 

OREGON 

THE  COMPUTER  STORE 

Corvallis.  OR  97330 

CAMERA  AND  COMPUTER 

EMPORIUM 

Portland.  OR  97205 

COMPUTERUND  Of  PORTLAND 

Tigart,  OR  97223 

PENNSYLVANIA 

BYTE  SHOP 

Bryn  Mawr,  PA  19010 

PERSONAL  COMPUTER  CENTER 

frazer.  PA  19355 

COMPUTER  AID 

Lalrobe.  PA  15650 

THE  COMPUTER  WORKSHOP 

Murrysville.  PA  15668 

A  B  COMPUTERS 

Monlgomeryville.  PA  18936 

MICROTRONIX 

Philadelphia.  PA  19106 

COMPUTER  HOUSE 

Pittsburgh.  PA  15220 

SOUTH  CAROLINA 

DATA  MART 

Greenville.  SC  29607 

TENNESSEE 

MICROCOMPUTER  STORE 

Knoxville,  IN  37919 

COMPUTER  UBS  Of  MEMPHIS 

Memphis.  IN  38117 

OOC'S  COMPUTER  SHOP 

Nashville.  TN  37211 

TEXAS 

COMPUTER  POST 

Arhngton.  TX  76011 

COMPUTERUND  Of  AUSTIN 

Austin.  TX  78757 

COMPUTERS  N  THINGS 

Austin.  TX  78731 

MICRO  COMPUTER  SHOPPE 

Corpus  Christi.  TX  78411 

MICROSYSTEMS  SERVICES  INC. 

Corpus  Christi.  TX  78411 

COMPUSHOP 

Dallas.  TX  75243 

COMPUTER  IMAGINEERING 

Dallas.  IX  75234 

COMPUTERUND 

Dallas.  IX  75231 

KA  ELECTRONICS  SALES 

Dallas.  TX  75247 

COMPUTER  TERMINAL 

El  Paso,  IX  79901 

RAM  MICRO  SYSTEMS 

fort  Worth.  TX  76116 

COMPUIERCRAfT 

Houston.  TX  77063 

COMPUTERUND  Of  HOUSTON  BAY 

Houston.  IX  77058 

INTERACTIVE  COMPUTERS 

Houston.  TX  77036 

NEIGHBORHOOD  COMPUTER 

Lubbock.  TX  79401 

COMPUTER  PATCH  Of  SANTA  FE 

Odessa.  TX  79762 

COMPUSHOP 

Richardson.  TX  75080 

THE  COMPUTER  SHOP 

San  Antonio.  TX  78216 

COMPUTER  SOLUTIONS 

San  AnIonio.  TX  78229 

MICRO  MART 

San  Antonio.  TX  78205 

WICHITA  COMPUTER  SYSTEMS 

Wichita  Falls.  TX  76301 

UTAH 

ADP  SYSTEMS 

Logan.  UI  84321 

IRI-POWER  ELECTRONICS 

Murray.  UT  84017 

COMPUTER  SPECIALISTS 

Ogden,  UT  84402 

COMPUTER  CONCEPTS  GROUP 

Salt  Lake  City.  UT  84109 

COMPUTERUND  OF  SALT  LAKE 

Salt  Lake  City,  UT  84111 

THE  HI  Fl  SHOP 

Salt  Lake  City,  UI  84117 

VERMONT 

COMPUIERMART 

Essex  Junction,  VT  05452 

VIRGINIA 

COMPUTER  HARDWARE  STORE 

Alexandria,  VA  22314 


COMPUTERS  PLUS 

Alexandrra,  VA  22304 

COW,  INC. 

Blacksburg,  VA  24060 

HOME  COMPUTER  CENTER 

Newport  News,  VA  23606 

COMPUTER  TECHNIQUES 

Richmond,  VA  23235 

THE  COMPUTER  PLACE 

Roanoke,  VA  24015 

COMPUTER  WORKSHOP 

Sprmglield,  VA  22151 

COMPUTERUND 

Vienna,  VA  22180 

HOME  COMPUTER  CENTER 

Virginia  Beach,  VA  23452 

WASHINGTON 

COMPUTERUND 

Bellevue,  WA  98007 

OMEGA  NORTHWEST 

Bellevue,  WA  98004 

COMPUTERUND  OF  SOUTH 

KING  COUNTY 

Federal  Way,  WA  98003 

YE  OLDE  COMPUTER  SHOPPE 

Richland,  WA  99352 

THE  COMPUTER  SHOPPE 

Seattle,  WA  98115 

EMPIRE  ELECTRONICS 

Seattle,  WA  98166 

PERSONAL  COMPUTERS 

Spokane,  WA  99202 

COMPUTERUND 

Tacoma.  WA  98499 

WISCONSIN 

BYTE  SHOP  OF  MILWAUKEE 

Greenlield.  Wl  53227 

COMPUTERUND 

Madison.  Wl  53711 

MADISON  COMPUTER  STORE 

Madison.  Wl  53711 

COMPUTERUND 

Milwaukee,  Wl  53222 

FOX  VALLEY 

COMPUTER  STORE 

Neenha,  Wl  54956 

WYOMING 

COMPUTER  CONCEPTS 

Cheyenne,  WY  82001 

AUSTRALIA 

ELECTRONIC  CONCEPTS  PTY,  LTD 

COMPUTERUND 

Sydney,  N.S.W. 

CANADA 

COMPUSHOP 

Calgary,  Alberta  T2N  2A4 

THE  COMPUTER  SHOP 

Calgary,  Alberta  I2T  4T9 

ORTHON  COMPUTERS 

Edmonton,  Alberta  T5N  3N3 

UB  MICROSYSTEMS 

Edmonton,  Alberta  T5M  0H9 

CONTI  ELECTRONICS 

Vancouver,  BC  V5W  2Z4 

COMPUTER  CITY 

Winnepeg  Manitoba  R3P  0H8 

COMPUTERUND 

Winnepeg,  Manitoba  R3G  0M8 

INTERACTIVE  COMPUTER  SYSTEMS 

Frederickton,  New  Brunswick 

MINICOMP  SYSTEMS 

Halilax,  Nova  Scotia  B3K  2G1 

KOBEIEK  SYSTEMS 

Wolh/ille,  Nova  Scotia  BOP  1X0 

COMPUTERUND 

Burlington,  Ontaiio 

LYNTRONICS 

Downsview,  Ontario  M2J  2W6 

COMPUTER  CIRCUITS 

London,  Ontario  N6A  3H2 

COMPUMART 

Ottawa,  Ontario  K2A  IJ2 

COMPUTER  INNOVATIONS 

Ottawa,  Ontario  K1B4A8 

RICHVALE  TELECOMMUNICATIONS 

Richmond  Hill.  Ontario 

THE  COMPUTER  CENTRE 

Sarnia.  Ontario  N7T  1B4 

COMPUTER  MART 

Toronto,  Ontario  M4G  3B5 

THE  COMPUTER  PLACE 

Toronto.  Ontario  M5V  IZl 

COMPUTER  SPECIALIST 

Toronto.  Ontario  M3K  1E7 

HOME  COMPUTER  CENTRE 

Toronto.  Ontario  M2M  3W2 

HOUSE  OF  COMPUTERS 

Toronto.  Ontario 

MARKETRON 

Toronto.  Ontario 

MICRO-WARE 

Toronto,  Ontario  M4E  2L2 

COMPUCENTRE 

MontreaL  Quebec  HIJ  1Z4 

FUTUR  BYTE 

Montreal,  Quebec  H3B  3C9 

CUSTOM  COMPUTING  SERVICES 

Saskatoon.  Saskatchewan  S7K  285 

DIGITAL  SERVICE 

Saskatoon.  Saskatchewan  S7J  3A9 

PUERTO  RICO 

MICROCOMPUTER  STORE 

RioPiedras.  PR  00921 


BYTE  August  1979 


139 


Text  continued  from  page  136 

this  4  byte  object  can  specify  the  atom  uniquely  from  all 
other  atoms  and  from  all  other  dotted  pairs. 

Unfortunately  this  does  not  provide  a  simple  way  of 
distinguishing  atoms  from  dotted  pairs,  when  just  given 
the  form.  Several  solutions  to  this  problem  are  possible. 
One  is  to  restrict  dotted  pairs  to  a  certain  part  of 
memory,  then  the  address  would  determine  whether  the 
form  specified  an  atom  or  a  dotted  pair.  A  second 
method  is  to  add  an  additional  byte  to  both  dotted  pairs 
and  atoms  which  simply  contains  a  type  specifier,  say  1 
for  dotted  pairs  and  2  for  atoms.  This  method  makes 
future  expansion  of  types  simple,  but  is  somewhat 
wasteful  in  terms  of  space.  The  third  method,  the  one 
chosen  for  the  author's  system,  is  to  align  all  dotted  pairs 
and  atoms  on  4  byte  boundaries,  that  is,  with  addresses 
which  are  a  multiple  of  four.  This  means  that  the  low 
order  two  bits  of  the  address  are  expected  to  always  be 
zero,  and  hence  may  be  used  to  encode  type  information. 
In  the  author's  system,  dotted  pairs  are  specified  by  forms 
with  both  bits  zero,  and  symbolic  atoms  by  01  in  the 
lower  two  bits.  One  of  the  bits  is  still  unused,  but  will 
become  very  handy  when  garbage  collection  methods  are 
discussed  below. 

With  numeric  atoms,  their  name  determines  their 
value,  and  hence  only  their  name  (or  their  value)  need  be 
specified  by  a  form.  On  the  author's  M6800  system  only 
hexadecimal  memory  addresses  0000  thru  7FFF  were  ac- 
cessible for  storage  of  dotted  pairs  and  atoms,  meaning 
that  the  high  order  bit  of  forms  specifying  either  of  these 
was  always  zero.  A  representation  for  numeric  atoms 
was  chosen  to  be  a  form  with  the  high  order  bit  set,  14 
bits  of  numeric  value,  and  one  bit  left  for  garbage  collec- 
tion. 

A  special  representation  for  the  NIL  atom  is  used  both 
because  the  value  of  NIL  is,  like  numeric  atoms,  required 
always  to  be  the  atom  itself,  and  because  it  is  used  univer- 
sally to  represent  the  end  of  a  list.  The  form  chosen  to 
specify  NIL  is  simply  the  value  zero.  In  fact  any  form 
with  the  high  order  byte  zero  is  treated  like  NIL  to 
simplify  the  test  for  NIL  in  certain  cases.  This  means  that 
the  256  byte  page  starting  at  zero  is  not  usable  for  storing 
atoms  or  dotted  pairs,  but  this  restriction  causes  no  pro- 
blem at  all,  since  both  are  allocated  starting  at  the  highest 
address  available,  and  the  allocator  runs  into  program 
long  before  it  reaches  page  zero. 

When  writing  a  LISP  interpreter,  the  implementor 
must  decide  relatively  early  on  how  forms  will  specify  all 
types  of  LISP  objects.  Unfortunately,  it  may  not  be  until 
well  into  the  implementation  that  the  implementor 
discovers  that  certain  choices  were  inefficient  or  incon- 
venient. 

One  important  requirement  affecting  this  decision  not 
yet  mentioned  is  the  need  to  implement  the  LISP  EQ  func- 
tion. This  function  takes  two  arbitrary  forms,  and 
returns  the  atom  T  or  the  atom  NIL  depending  on 
whether  the  forms  specify  the  same  dotted  pair,  or 
whether  the  forms  specify  the  same  atom.  Whenever  an 
atom  is  input  by  READ,  it  must  return  the  form  specify- 
ing that  atom  to  the  caller.  Whenever  the  same  symbolic 
atom  name  is  typed,  READ  must  return  the  same  form, 
ie:  a  pointer  to  the  same  4  byte  cell.  This  is  accomplished 
by  retaining  a  linked  list  of  all  defined  symbolic  atoms 
(called  the  OBLIST). 


Before  allocating  a  new  4  byte  eel]  for  an  atom,  READ 
scans  the  OBLIST  for  an  atom  of  the  given  print  name.  If 
found,  READ  returns  a  form  specifying  that  pre-exisiting 
atom.  (Otherwise  it  must  copy  the  name  into  some  area 
used  for  storing  names,  allocate  a  4  byte  cell,  initiahze  the 
left  cell  to  point  to  the  name,  and  the  right  cell  to  NIL, 
and  return  a  form  specifying  the  new  atom.)  This  method 
guarantees  that  two  forms  specify  the  same  symbolic 
atom  if  and  only  if  they  have  the  same  address. 

In  some  implementations  of  numeric  atoms,  this  same 
rule  cannot  be  guaranteed.  In  such  systems,  numeric 
atoms  are  simply  allocated  an  appropriately  large  cell  to 
store  their  numeric  value  (and  hence  allowing  numeric 
atoms  greater  than  14  bits),  a  new  cell  being  allocated 
every  time  a  new  number  is  generated  (which  happens  at 
every  ADD,  MUL,  etc).  In  these  systems  it  would  be  im- 
practical to  scan  a  list  like  the  OBLIST  every  time  any 
arithmetic  calculation  is  done,  and  so  the  LISP  function 
EQ  may  not  rely  on  the  rule  that  unequal  forms  indicate 
unequal  atoms.  In  such  systems,  EQ  must  look  at  the 
contents  of  the  cell  specified  by  a  numeric  atom  form, 
and  make  the  comparison  that  way.  In  systems  like  the 
author's,  EQ  simply  compares  the  forms  themselves,  no 
matter  what  type  of  atom  the  form  may  specify. 

The  choices  made  in  representing  the  various  types  of 
LISP  objects  can  be  summarized  in  the  high  level 
language  (Pascal-like)  data  structure  specification  in 
listing  1. 


type  lisptype  = 

(dtprlype,  symatmtype,  numatmtype,  nilatmtype): 
dtpr- 
record 

car:  form; 
cdr:  form 
end; 
symatm  = 
record 

name:  \  array  [0..n]  o\  char; 
value:  form 
end; 
form  = 

packed  record 
gcbit:  boolean; 
case  objlype:  lisptype  of 

dtprlype:  (dtprform:  I  dtpr); 

symatmtype:       (symatmform:      \  symatm); 
numatmtype:      (numatmform:      -  5000.. 4999); 
niiatmtype:  ( ) 

end. 

Listing  1:  A  Pascal  data  structure  specification  that  could  be 
used  to  represent  various  types  of  LISP  objects. 


READ  Function 

READ  is  the  basic  input  routine  for  the  LISP  inter- 
preter. READ  accepts  a  fully  parenthesized  expression 
from  the  terminal,  and  builds  up  the  internal  representa- 
tion, allocating  new  dotted  pairs  and  atoms  as  necessary. 
If  the  expression  is  a  list,  READ  returns  a  form  specifying 
the  first  dotted  pair  of  the  constructed  list.  If  the  expres- 
sion typed  in  is  simply  an  atom,  READ  returns  a  form 
specifying  the  atom. 

The  logic  of  the  READ  routine  is  straightforward 
because  the  syntax  of  LISP  expressions  is  so  simple. 
READ  calls  a  function  RATOM  to  return  the  next  input 
atom.  RATOM  actually  does  the  work  of  allocating  new 
4  byte  cells  for  symbolic  atoms  (when  necessary)  as  ex- 


140        Augusl  1979  ©  BYTE  Publications  Inc 


NTE^TEC  DATA  SVaaVIS 


;■'■".■■.'•■:■■]      J      J      i      I 


The  Honor  Graduate 


There's  been  a  lot  of  talk  lately 
about  intelligent  terminals  with 
small  systems  capability.  And,  it's 
always  the  same.  The  systems 
which  make  the  grade  in  perfor- 
mance usually  flunk  the  test  in 
price.  At  least  that  was  the  case 
until  the  SuperBrain  graduated  with 
the  highest  PPR  (Price/ Perfor- 
mance Ratio)  in  the  history  of  the 
industry. 

For  less  than  $3,000*,  SuperBrain 
users  get  exceptional  performance 
for  just  a  fraction  of  what  they'd 
expect  to  pay.  Standard  features  in- 
clude: two  dual-density  mini-flop- 
pies with  320K  bytes  of  disk  storage, 
64K  of  RAM  to  handle  even  the  most 
sophisticated  programs,  a  CP/M 
Disk  Operating  System  with  a  high- 
powered  text  editor,  assembler  and 

'Quantity  one.   Dealer  inquiries   invited. 
Circle  180  on  inquiry  card. 


debugger.  And,  with  SuperBrain's 
S-100  bus  adapter,  you  can  even  add 
a  10  megabyte  disk! 

More  than  an  intelligent  terminal, 
the  SuperBrain  outperforms  many 
other  systems  costing  three  to  five 
times  as  much.  Endowed  with  a 
hefty  amount  of  available  software 
(BASIC,  FORTRAN,  COBOL),  the 
SuperBrain  is  ready  to  take  on  your 
toughest  assignment.  You  name  it! 
General  Ledger,  Accounts  Receiv- 
able, Payroll,  Inventory  or  Word  Pro- 
cessing .  .  .  the  SuperBrain  handles 
all  of  them  with  ease. 

Your  operators  will  praise  the 
SuperBrain's  good  looks.  A  full 
ASCII  keyboard  with  a  numeric  key- 
pad and  function  keys.  A  non-glare, 
dynamically  focused,  twelve  inch 
screen.  All  in  an  attractive  desktop 
unit  weighing  less  than  a  standard 


office  typewriter.  Sophisticated 
users  will  acclaim  SuperBrain's  twin 
Z-80  processors  whicii  transfer  data 
to  the  screen  at  38  kilobaud!  Inter- 
facing a  printer  or  modem  is  no 
problem  using  SuperBrain's  RS- 
232C  communications  port.  But  best 
of  all,  you  won't  need  a  PhD  in  com- 
puter repair  to  maintain  the  Super- 
Brain. Its  single  board  design  makes 
servicing  a  snap! 

So  don't  be  fooled  by  all  the  fresh- 
man students  in  the  small  systems 
business.  Insist  on  this  year's  honor 
graduate  ...  the  SuperBrain. 


J 


sinte^tec 
Cdata 

£  SYSTEMS. 


2300  Broad  River  Road,  Columbia,  SC  29210 
(803)  798-9100  TWX:  810-666-2115 


BYTE  August  197°         141 


Circle  352  on  inquiry  card. 


"Programming."  Whether  in  Arabic  or  English,  can  sometimes  be  as 
confusing  as  learning  a  foreign  language. 

With  this  in  mind,  Structured  Analysis  Systems  developed 
SP80,  an  innovative  concept  providing  structured  programming 
capabilities  within  assembly  language. 

Designed  specifically  for  the  8080/Z80  systems,  SP80  can 
be  used  with  most  macro  assemblers;  TDL,  Cromemco  Z80, 
Microsoft,  or  Digital  Research. 

Statements  include: 

•  Iteration;  LOOP-EXITIF,  REPEAT-UNTIL,  WHILE-ENDWHILE,  DO 

•  Conditional;  IF-ELSE-ENDIF 

•  Case  analysis;  SELECT-CASE-CASE-CASE-ENDCASE 

Specific  capabilities: 

•  Conjunction/Disjunction;  AND,  OR 

•  Unsigned  relations;  EQ,  NE,  LT,  LE,  GT,  GE 

•  Signed  relations;  SLE,  SLT,  SGE,  SGT 

•  Conditions;  CARRY,  NZ, 
PLUS,  Etc. 

•  Z80  or  8080  code 
generation 

SPSO's  manua 
includes;  functiona 
source  listings  of  up 
to  two  macro 


libraries,  macro  syntax  (with  examples),  and     ^^ 
detailed  sample  SP80  program .  ^^ 

Send  $50  for  CPM  diskette  and  manual,  or  $25  for  manual  alone,  (add  $5 
overseas  and  $2  Canadian  postage)  to:  Structured  Analysis  Systems 

Post  Box  2745 

Reston,  Va.  22091/703-860-8794 

Please  specify  only  up  to  two  assemblers  for  which  to  receive  documentation. 
Also  available  in  Macro-ll  tor  the  LSl-11  and  PDP-11. 
Laminated  SP80  reference  cards  available  at  $5  each. 


plained  above.  RATOM  returns  a  form  specifying  the 
atom  typed.  If  this  atom  is  anything  but  the  atom  "(" 
READ  simply  returns  the  atom  as  its  result.  If  the  atom 
returned  by  RATOM  is  "(",  READ  calls  itself  recursively 
until  it  gets  the  atom  ")",  meanwhile  stringing  the  forms 
returned  together  as  the  CARs  on  a  linked  list  of  dotted 
pairs.  This  could  be  written  as  in  listing  2. 

In  the  LISP  functions  we  are  assuming  that  the  atoms 
LPAREN  and  RPAREN  were  initialized  to  point  to  the 
atoms  with  print  names  "("  and  ")"  respectively.  Notice 
that  in  the  LISP  version,  READ  accomplishes  the  loop  ot 
the  machine  code  version  with  recursion  in  READL.  The 
routines  LSTINI,  LSTADD,  and  LSTEND  used  in  the 
assembly  language  version  build  up  a  linked  list  of  dotted 
pairs,  using  two  pointers  on  a  stack,  one  to  the  first  dot- 
ted pair,  one  to  the  dotted  pair  at  the  current  end  of  the 
linked  list.  The  pointers  are  on  a  stack  so  that  READ  may 
call  itself  recursively.  The  stack  is  actually  a  linked  list 
itself.  The  linked-list  stack  is  manipulated  with  the 
routines  in  listing  3.  With  these  routines  it  is  straight- 
forward to  implement  LSTINI,  LSTADD,  and  LSTEND 
for  use  in  READ.  These  routines  are  shown  in  listing  4. 

The  primitive  function  RATOM  turns  out  to  be  the 
real  workhorse  of  READ.  It  is  stuck  with  the  job  of  ac- 
cepting characters  one  at  a  time  from  the  terminal,  and 
building  them  up  into  an  atom.  RATOM  must  distin- 
guish symbolic  atoms  from  numeric  atoms,  and  build  up 
the  corresponding  forms.  Atoms  are  in  general  separated 
by  spaces,  tabs,  or  carriage  returns.  However  a  few 
special  characters  always  form  single-character  atoms 

Text  continued  on  page  145 


PTDOS  +  CBSort  =  FAST!,  FAST!,  FAST! 

CBSort  IS  NOW  AVAILABLE  FOR  PTDOS®  —  HELIOS®  SYSTEMS 


SPEED  AND  COMPATABILITY  CBSort  is  fully  compatible 
with  the  incredible  power  of  PTDOS.  CBSort,  written  in 
8080  Assembler,  coupled  with  the  power  of  PTDOS  buf- 
fering produces  lightning  speed  sorts. 

FLEXIBLE  YET  EFFICIENT  CBSort  can  sort  any  file  with  a 
fixed  record  length  of  up  to  4095  bytes.  CBSort  sorts  up 
to  5  fields  of  any  length,  up  to  the  length  of  the  record. 
Each  field  can  start  on  any  byte  of  the  record  and  each 
field  can  be  ordered  in  ascending  or  descending  se- 
quence. The  file  can  be  fully  described  in  the  calling 
parameters  or  based  on  the  TYPE  parameter  standard 
defaults  for  that  type  can  be  assumed.  CBSort  is  a  logical 
byte  sort  so  that  any  bit  convention,  ASCII,  EBCDIC, 
BCD,  Packed  Decimal  or  binary  can  be  sorted  in  ascend- 
ing or  descending  order. 

EASE  OF  INTERFACING  CBSort  works  well  either  as  a 
stand  alone  sort  or  with  production  and  turnkey  sys- 
tems. Special  linking  programs  are  included  with 
CBSort  to  allow  insertion  into  a  stream  of  programs. 
CBSort  is  compatible  with  Extended  Disk  Basic,  FOR- 


TRAN, Pascal  or  any  other  language  available  on  the 
HELIOS  system. 

PRACTICAL  CBSort  can  really  sort  a  full  disk  because  it 
does  not  require  extra  space  on  your  disks  for  merge 
and  work  files  as  other  sorts  do.  CBSort  sorts  files  so 
you  do  not  have  to  contend  with  the  overhead  of  mem- 
ory consuming  indexed  tags  in  order  to  get  sequential 
data.  CBSort  is  practical  for  the  micros  and  not  a  trans- 
plant from  the  gluttonous  dinosaurs. 

EXTRACTION  CBSort  has  the  ability  to  extract  from  the 
main  file  and  create  a  sorted  secondary  file  that  contains 
only  the  selected  fields  and  a  pointer  to  the  main  file. 
This  can  be  extremely  useful  when  using  a  binary  search 
technique  for  field  verification,  for  quick  file  summari- 
zation or  further  field  extraction. 

EASY  TO  USE  The  User's  Manual  describes  in  detail  the 
features  and  operation  of  CBSort  and  contains  many 
examples  of  its  use.  CBSort  does  extensive  error  check- 
ing and  produces  clear  runtime  error  diagnostics. 


CBSort  on  PTDOS  data  disk  with  User's  Manual $75.00 

®PTDOS  and  HELIOS  are  registered  trademarks  of  Processor  Technology 

(cbslComputer  Bookkeepine  Services,  Inc. 

Micro  Division  *  '  ^^ 

1446  Leimert  Blvd.  •  Oakland,  CA  94619  •  (415)  531-7427 


142        August  1979  ©  BYTE  Publications  Inc 


Circle  49  on  inquiry  card. 


.*; 

_v 

sz 

"S 

o 

CD 

4-) 

e 

e 

c 

fO 

o 

-*J 

rj 

« 

-S 

■H 

■H 

T? 

(« 

0; 

"H 

1 

C 

•5- 

TT 

T, 

E 

01 

C 

<« 

^ 

TO 

CJ 

z: 

c= 

T? 

■H 

V- 

(- 

^ 

r-H 

CL 

[/) 

ct 

i^ 

,__, 

,„-^ 

vj 

a 

TO 

CXH 

o 

>. 

C// 

JD 

,— ( 

Ul 

c: 

TD 

c= 

(U 

-w 

O 

a; 

E^ 

>. 

> 

.^ 

jj 

O 

W 

-.-' 

■« 


c 
■2 

u 

c 

5 


o 


^ 
s 


•H   nj   to  -H 

l_    CL  (U  O 

(c        o  a. 

Q.  4->   -»J  CO 


«  to 


^ 

X. 

i 

cS 

to 

t^      1 

> 

C-1 

tjj 

Ul 

0 

<a; 

-'i 

4J 

^ 

•J 

^ 

c; 

c: 

i-i 

_c 

lU 

L> 

ti: 

01 

(■-  X 

C 

a' 

0/ 

0 

- 

en 

-u 

<J 

CJ 

C 

f" 

Q. 

tTi  ,-- 

I*- 

i_ 

t^ 

*— 

o 

c 

O 

1- 

o; 

I- 

to 

V, 

k. 

4-> 

L- 

u 

1) 

3 

0  ^ 

3 

r. 

H-, 

sz 

c- 

u 

UJ 

=) 

1 

t»- 

tt^ 

d: 

0 

D 

,— ■ 

x: 

r-!      CU 

f? 

jj 

J51: 

o 

4-J 

ni 

x: 

C\j 

CL'  s: 

4~> 

•- 

X 

0 

OJ 

Cl 

x: 

jj 

4-> 

o; 

QJ 

0 

CL 

0) 

0 

d; 

■2 

4_> 

x: 

SZ  JJ 

Oj 

1- 

rr 

,— I 

x: 

t.i 

jj 

0 

Cb 

jn 

OJ 

"O 

j_ 

rc 

<;: 

(« 

(U 

c: 

x^ 

--> 

i_ 

•r^ 

GJ 

4-> 

1- 

^ 

0 

jj 

^ 

c-  a- 

1 

4-> 

tJ 

0 

4-> 

c 

ro 

c 

0) 

n 

-C 

D. 

(U 

a. 

c 

j-J 

4-> 

l« 

c;;  x: 

X 

■r. 

to 

,,-^ 

•t^ 

fC 

■fH 

Q 

OJ    V- 

TT 

li—I 

4-> 

D 

^ 

0, 

sz 

■^ 

Ti 

OJ 

4-> 

c: 

J^  e 

a 

"J 

o 

cl: 

jJ   o 

C; 

0 

4-) 

J-) 

C 

£7 

4-1 

t: 

0; 

C-. 

0  i_ 

c 

K 

3 

o 

.-< 

=t 

O 

rj  jj 

ra 

■D  :■:: 

Ol 

_v 

e 

fO 

,— 1 

n; 

0 

c 

n: 

e 

i_  ^ 

n; 

0 

ro  3 

r~\ 

»— 1 

u 

t:  to 

OJ 

> 

u 

+J 

•rH 

T? 

Q 

•>-<  i:: 

C 

4->    4J 

(L 

r-H 

•  >H 

■w 

a  o 

41  0 

to 

0 

rx 

0; 

■r-l 

t« 

0 

Q. 

tr   ■'-H 

n. 

to  <u 

> 

re 

C-. 

«— 

3    U 

jj  iJ 

V) 

n. 

t: 

3 

•— 

ti 

"^ 

Q. 

^ 

I— 

ex.— ' 

r— 

0 

L. 

^ 

+ 

X 

0 

X   + 

X 

>; 

tr 

X     + 

+ 

X 

4-1 

c 

a. 

01 

— 1 

c= 

cc 

- 

cn 

T-  Cr: 

en 

UJ 

p= 

-c:: 

.— 

> 

a- 

cc 

a- 

-Cl 

,    ) 

X)  D= 

cc 

.. 

0  Q= 

j:: 

UJ 

H 

X 

(" 

t^x 

CJl 

t- 

Ul 

X  H 

—  t-- 

X 

X 

+ 

E- 

X  H 

■-  (— 

UJ 

a.'  E— 

X 

E- 

1-   X 

4-) 

E- 

X 

J.) 

u 

CL 

*. 

D- 

+   CU        ► 

JO  Ou 

Q- 

cc 

-Q- 

+  c_ 

.. 

+ 

D_ 

. 

Ci_ 

+ 

1 

a. 

-Cu 

+    CU 

u 

4J  o- 

Cl, 

+    - 

ro 

4->  G- 

r. 

t- 

i^ 

a: 

1-^ 

IX 

i^  en: 

0 

^ 

u: 

u. 

CX    Ul 

r;  UJ 

cc 

en 

".- 

f:; 

T 

cc: 

X 

;_- 

c::  i^ 

cr  U 

Ul 

4J  UJ 

cc 

UJ 

cc  cc 

■rH   txT 

CC 

o 

n 

UJ 

E- 

Ci 

t-  d  h  =c 

C    fU  E- 

CC 

C"i 

Cl   fr 

f.J  cc 

0 

Cl 

f- 

■<  t-  -a: 

(-• 

C3  t-. 

Cl  t-  Ct 

0  or: 

c 

cc 

Cl  <r. 

0 

H 

<c 

o 

(U  u 

C- 

CJ 

CO  u  c/;  o 

,r: 

X 

u. 

(.  1  U. 

0  u. 

(.' 

t-J 

X 

tj 

X 

u 

Cu 

0  7 

0  L. 

u  c/;)  u- 

-0  L- 

C_J 

u. 

0  U 

3 

OJ  c/"; 

0 

00 

> 

r;  4-j 

c 

.—I 

> 

^ 

fD 

<c 

eC 

< 

< 

«:  't: 

ci;  er 

"-C 

•^J" 

=1: 

4-> 

<r  <^ 

*=  < 

r3  -r- 

<r. 

<r 

»j; 

(Q 

rc 

s 

I/: 

cc 

,- 

< 

et 

■< 

X  X 

o; 

0>  J-) 

X 

X 

o- 

<r.  <C 

«—   ej' 

cc 

:x 

rT 

<=: 

*-r- 

«i 

V"j 

X 

•j:  <^ 

cC   «< 

13: 

•^ 

C-* 

■^   X 

CO 

> 

C.  X 

X  CO 

■< 

o 

G  H 

C:  i-- 

E-  Q  E- 

jJ    c 

E- 

Q 

UJ 

0  E- 

Cl  E-' 

—1 

_1 

Cl 

E" 

.•  1 

t-- 

H 

OJ 

CJ 

0  E- 

a  E-- 

on 

D.C1 

t- 

ci  E-  Cj 

E- 

,-<  Cl 

Q  t^ 

X 

C"l 

LT 

.  1 

CT; 

t-"j  — i 

(X. 

lU    CT 

cO 

„j 

Cl 

^  t.:j 

.— 1  t  ; 

LJ 

tJ 

.   1 

C-) 

.   , 

t) 

cr: 

,_ 

,    , 

_l  0, 

—1  CO 

c:, 

3  ^ 

00 

-t  (/)  _j 

q; 

C 

J 

— 1  cc 

r^ 

" 

0 

0 

J- 

4-1 

.s 

CO 

0  -0 

1 

4J 

OJ  ^ 

3 

ro 

X 

.-■   C 

UJ 

to 

W  Ul 

4-) 

J3 

D- 

— 

rH     ™ 

LJ 

0. 

X 

i_  0 

0) 

^-'X 

■*- 

'-T 

03 

t- 

1- 

D, 

(mUI 

k- 

a. 

O    O    f^  --<    O-   O  TJ 

4-1    4-3     O  ■» 

(13    ft  4->  TD    O    f 

fU  O)  4-1 

+J  =  J:^:         = 

3  w   Q;  c    >>' 

CXr     ^  --H  r--  r 


■a  -u 
OJ  -a 

4->     (0 


■^  SI 

O    4-> 

a. 

rj  c 

4->     i- 

tio  ct; 


Cl 

<: 


c  c:  c   to   (L 


>  4-1   r4   3    o 


4-1  x; 
cr  4-1 


crCL-^-^:  CTt:   oc  o 

D.   QJ    F    C  I4-.     OJ  •'-I   I— I  •'-'  "— < 


0 

^^ 

,_, 

UJ 

^ 

0 

CK 

s 
5 

^-^ 

<r 

<= 

.-. 

u 

CL 

Cl 

Cl 

0 

en 

Cl 

CQ 

^- 

;■- 

>: 

-^ 

eC 

«=: 

<: 

<r 

c 

"T 

CC 

a 

d 

'^ 

^ 

0 

Ul 

<t 

-^ 

S 

CC 

cr 

E- 

—1 

c; 

LU 

CJ 

Cl 

■^^ 

a  c 

?^ 

<c 

^ 

<c 

r' 

<c  rr 

ru 

UJ 

Ul 

0 

UJ  0 

^ 

lC 

cc 

or. 

tj 

cr  0 

►-J 

U, 

U- 

U. 

Ul 

(lJ 

UJ 

fN 

£3 

.^ 

a 

^-, 

Q 

tX) 

w 

^ 

^. 

^ 

Q-th 


-  to   ,-H  to 

O    Oj    CC    to    OJ 


cc  .-H  - 
o  •" 


(T    CD  X)  ;_ 

x:  3 

Q.  4J    jJ  4J 

o        to  a.' 

1'  1-  V- 

N   -H 

■H  <»-.  T3 

i-H  C 

ta  0)  (u 
c:  x: 


E-       i-i       E-  s:  cij  CJ 

OCCUJ»-hCC.C!<  ^lUJ 

t—<:cnE—  ^^-^l— jE--  .—it-' 

<  Q,  O  t  ■)   UJ  C-  C-1   to  Cl   CO 

tc-jcc— ic^cccr—i  £C_j 


cc  X  UJ  fc  Cl.  >:  CJ-  ci; 

CO   CL.  2:  CO   CO  C_  UJ   CT 

-3  C.J  en  -3  a.  tj  Cl  -3 


:  cc 


, 

q: 

t—\ 

Cl 

7Z 

C-l 

Q) 

d) 

r 

,c 

4-1 

4-1 

•i-H   C„ 

4-1    4-1 

0 

C    -r-l 

. 

CL_j 

■H 

Cl 

I-H 

0  -c 

o 

m  2: 

CLtO 

«T- 

3 

h- 

c   ro 

n:   c 

U) 

Cli 

x: 

-J 

j=  .:*: 

J^    4J 

t«   ^    10 


to 


Q. 


XI  -DO 

c 
o        ro  3 

4-1  O)  t 

•   c   r: 

QJ      (U     cc   Cj 

4-1    c    Q.  O  - 

c:    I 

■rH  cQ  -a   (O  • 

o        <u  to 

Q.  ID   4-J    CL- 

C   4J    k- 

4.1     CO     O  T? 

■rH       -  CD 

nH     rV)   ro 

Oj         iu 
O     k.  .U    > 

Qj    (ij 

no  to 


Js:  ^c  cc 

CJ               X  E--  X 

CD    CT]  O  X   Cu  X 

+J          cc  CO   ^  CO 

to  .^  UJ  ID   h-«  ZZ3 

CJ  M  CL.   CO  Q- 

cr  (c 
x:  4-1 

4J    tOXCCXXXQ- 

Q  CO  Q  UJ  UJ  ?: 

Cl4-i-j'-o— iQC;  -^ 
3    to 


t- 

ci 


CO 

01  -.„i  en 
k-  WUl  (— 
I  OJ  CJ  Cl, 
X  t,  h-  _j 
I    UJ  UJ 

c  X  to  u 


(D    -rH  Q, 

1_   ^  t-  3 

+  X  X 

t-.  X   (_  .-  f—  X  >- 

xcL    -Q.+au     -  + 
o-^jo:  -jccitrcccc 

oujtiujcih-.a;'^ 

E-   CJ  t_J    CJ  O  CO   C_)  CJ 


to  ec  <  CD  en        eC  CJ 

E  cD::Xci:.rr:=i:<<cx<£.<c/:) 
V-  CJ  CO  E-  CO  Cl  H  Q  E-  c:i  E-  f--  E- 
O    XI  "^  CO  -3   _j  C/1    ^  t/3  ^  CJ   to   QC 


a-  ^ 

01    ■♦-» 


Ts  .i: 


o  a. 
.2  ^ 

~  "S 
a  o 

a  S 

3  ° 

tTl  "« 
-J   *. 

g^ 
Q  S 

hi    C 

(n  o 

k-j    , 

s  = 

g  «^ 

>-j  c  ~ 

00   cy    c 

■S  -S^ 

•*-!.=         _ 

.20^ 

-J    EL'S 


10 

01 

x; 

c 

4-1 

10 

4-1 
to 

■.-I 

0 

I-H 

l-t 

D";  cu 
x:  ■■-'  1- 


^  jJ  Cl  t-H 

CJ  to   o   o 

4-1     t. 

CJ  -rH   a  Cl 


OJ    OJ   X  X 

4-1  D-   Q. 

4.1    ceo 

(0    -rH    ex.     C 


0=  CU 

c  c:  CO  :?: 

C,     l„    -3    —J 

O    3 

4J  n 

Q.  CU  ;^ 

O    C  UJ 
CL        H 

CO 

*  *   ^ 


August  1979  ©  BYTE  Publications  Inc        143 


OZ.  .^ 


|^f  O   V,   3   c: 

i-  ^  jr.  0}  <i' 

I    tu   o   V-   c 


4-J    o 


k,  c  a;  to 


4->     JJ 

--C 

L 

•> 

c  rt 

a.' 

"  0 

a; 

■■H     i_ 

a^ 

a  o 

£1 

'^.    .^ 

o  ^ 

o  a' 

o 

O.^- 

c;  (z 

>i  m 

c 

Ci-  a.  cc  rr:        tc 

V  ;v  X  a,  a,  >%■  a. 

h-  !--  -^"  :r     -;-, 

>^  X  c;  o  u  ■-  tj 


o 

3 

Q. 

o 

o 

O    E 

c: 

■o 

jj 

t^ 

1*; 

4-> 

10 

I 

to    OJ 

M 

(V    hO 

N     O 


0)  cc 
C  -»->  H 

DEO 

GJ     O  C/i 
1_   t^ 

4-3 

-  O    OJ 
Q.   >    10 

(u  ro  <u 


p  [„  X  H  =3  E-  f- 

o  ci_    -  <c  ii.'.  O  ?i  c-  a-  ?: 

4JE-CE:^[-cctr:>:tjQ= 

ra  01  <r  i-i  u.i  uj  o  •<  a.  o 
_jU2:ct:rN;U-."cO  U, 


Q)    4_) 

i- 

I-    tH 

1-    o 

.« 

■  r^    t— 

r-  en 

x; 

ro 

a«  1— < 

CU     l-H 

D-t^ 

-r-   -J 

0)  ^ 

o 

■■0   iCi 

nH  a   (U  ^ 


a»  Ce: 

r 

(-. 

■no 

o 

k,  Ll_ 

< 

3  ■"* 

ai 

tJ 

0  n, 

+J    D  ^ 


O    4-3     -r^    4J      '/! 


-P  cc   UJ         CD  UJ 


I  en  >*    cri   -^  uj 

t-«  -■'-«•+-  cc 

_j  11=:  -_j  ce  I— 

tf,  i=.    gc,    Q  <r 

en  c_i  CD  (o  iZr: 


•zz 

^ 

it; 

V 

o 

tlJ 

r 

t^-i 

O  C3 

i_  t::  c^  r. 

;        o  --^  (i:  • 

(/)    4-)    ■<-<    4-1    • 


(.-. 


3  ■.-<    OJ 
o   k-    w 


4-i  O 

4J  JD  JJ    W  J 

OJ    3  O  ->-<     ' 

to  to  c:  ^   1 


1    k,    c 

»  o 


'    O      I 


::z        z        z::  O  ?: 
X  o  1^        o  X  CJi  CO  cc 

--   <r:  c^  «£    -<;  <rv  cj 


X)  (.-1    tt" 
O    QJ 

3-    0)     I 

-4J    X 

r- 1  >, 

(M  ■■-> 


O    C   — I 
-  3    D      I 


GJ 


■iJ    O    C    3 

X)    t/1 


+ 
K  OS 

oo 

U.1JU 


Xis  O-LUh-U'n.uJf—  0-X>s;XXXX.a;C':) 
e-"  t-1  >:  ;^  t-)  LiJ  ;■;  ::  o")  ui  x^  :t  H  cj  i^  :;-  cc  H- 
c"j  ^  o  rr:  H-  CJ  tj  to  t—  r-j  i-H  (-.  c/:  ,^  i-«  t--  en  CK 


OJ  — I  _i  U  Cj  —I  C')  ^  O   _i  C:^ 


(U  X  c=  X  X  ci: 
Q  o  =z:  !~  en 


Q 


*r  <r  <r  *x  -I 
i=f  !—  &  h-  cc 


CI    cc 

3  :c 


r^  ci:  •=::  cc  e=  DT  cc  cc 


03    OJ  Xcr:CQH'CLf-'f—  Ujrccca::^^!^,^^;,-"..  

•  "^      • ;  o  c)  ^  i::i  E--  c:)  o  c.)  c  o  t--  CI  ^  f-  ui  H 


[0  o  Ci  3  ^  ^„  ^  V  , 

c  — J  -J  c  J  a  u  c-i  [  ■ 


<C  X   O   CO   O  C/) 


J  C/")  c^  ct:  •=:  fc  cc  c/^ . 


I   U  C;   C;  CC 


3 

"a 


C    0) 


:  0)  p 
:  a  (C 


!  JJ    E    1- 
1    n:    t^    nj 


C'    O   -J 

tn  w  0/  X 

>,  rH     O        • 


l-J    O    rj- 


O  i^ 


.-:;  Q-  >  0? 

'.0   r: 

-  3  t/i 


d'c:  cc 

u  O.  Cu  ; 

I  u  r^  I 

X  a,  .cc  I 

t, .  :.-  I 


■  CM  «r  <  ti- 

!    <':■  '.Z    b-l  Ui 
.  ^  O  cr:  r.-. 


o 

_ 

K 

i_               <r  <c 

■=c 

O  X  X   -,-:   Q-  E-   ur.  <^ 

t^  :.j  E-  •  Cj  r;  O  (.■  ,•  cu: 

^    w 

^  c;  _i  t„)  cu  rr  d. 

c 

3                 n. 

'  i.;  r^  . 


■  c    cr   3  L-J 


D  s:  TO  I— >  n.  h3  X 


3  CO 

0;  c-  p    tn 

c:  k.  o  ■'-J 

o  TO  4J  x:    • 

c^'  "u  jc  fo  jj  ri. 

i_  o  o 

o  .-^  -Tj  >,  o 

jj  .-I  .-<  c   a.w 

a;   ni  ra  Cj    o 

cu     -  y  -        c 

CL   W  QJ  to       -  Ct 

OJ   c::  CI.  a,   o 

it';    >.  (0  >,  £L- 


O  U  t,J  1^-  o  o  tJ         r^  u  O  o  c^ 

(L  o-  tj  — J  "a;  "^  cC  r\j  "^  c:j  cft  c,  ^ 

O  Cl-  CJ  IJ  LJ  LU  *-J  O  CL  u  tj  tJ 

(*-   O  t',  rr;   cc  c;  Ci   =fc  CO  CT;  o  o  cc 


e:  cc  cc  uj  cr:  .r.-:  c:;  CL  UJ  ti  qj  n-.  <r. 

m  c:  :^  L.>  c  c-3  ;:_  _j  c/i  lu  Cj  cc 
4J  cf^  tr:  CO  t.;  L!  en  u  r.j  en  lO  r.i  en 


a  Q. 
in  tn 


c  4->  r^:  Q) 

cc   cxx:  x: 

E  o  J-) 

W_    4_J  4J  <1/ 

a:  c: 

4-J  Qj  <1> 

OJ  c;  i-  u 

F  ■--<  O  O 


ftp  a, 

CJ  LJ   X 

I  c-j  c 


a 

E- 

x: 

cy 

o 

cc 

e 

O 

n. 

C/J 

F  ■•-' 

x: 

4-) 

P 

EJ  CC 

■r-l 

4-' 

t. 

1— ( 

4' 

Cj 

iJ 

H 

4J 

CT 

a. 

O     V. 

c 

to  D- 

to 

a 

CO 

c„    O 

r; 

3 

t^ 

-      ;r 

■,-H 

jJ 

c;) 

o 

Q, 

t^ 

4-* 

C]J 

F  «: 

X 

X 

F 

CJ 

c 

t- 

o  ^- 

Q, 

OJ 

+j 

z: 

-^  H 

4-) 

o 

4^ 

1 

C 

<u 

CO 

c 

V-  CO 

L 

OJ 

--:  4-) 

C; 

w 

o 

a.  HH 

jO 

4J 

n? 

o 

to 

Ci 

E  -» 

r; 

OJ 

Ci 

4J 

jj 

x: 

< 

3  c: 

a4J 

x: 

x:  4J 

-r-l 

- 

4J 

(J 

c  c: 

to 

4-)   nj 

c 

c 

JD 

o 

•i-t 

o 

3 

k, 

x: 

k- 

1 

■r-l 

c; 

\~ 

C    0- 

4J 

F 

Cj 

O     4J 

3 

rv) 

i_ 

-i-> 

a. 

k-  x: 

E  x: 

4J 

4J 

o 

c^- 

OJ 

a 

F 

3    4-> 

cc 

O 

k. 

OJ 

hfl 

c  x: 

c 

c 

3 

Jj 

H 

J-) 

4~) 

O 

U    4J 

l- 

O    4J 

3 

■r-i 

c: 

a-  a 

ex. 

w 

cz 

1 

CI    -rH 

•. 

u  —1 

E- 

F 

k,   c:3 

H 

•rH 

3 

*J      3 

>. 

,— ( 

nj    3 

CJ 

c-j 

jj 

O 

c 

Jj 

Q. 

t« 

0; 

■I-' 

o  in 

— 1 

X 

•H   0; 

-iH 

3 

C 

— t 

+J 

t.n 

(^ 

<L' 

0    1- 

c:j- 

-n: 

f. 

n 

C 

Q.  (V 

TJ 

QJ 

i-    D 

.:i: 

,— ' 

c> 

-  dJ 

c 

c 

a. 

C 

4-> 

u 

i—f 

o 

a  a 

•1-1 

jJ 

c 

4->     F 

3 

JJ 

1    q; 

C' 

3 

s: 

0;    '■i 

CO 

£: 

U, 

,-■ 

OJ    o 

O 

O 

O    i- 

^ 

C 

o 

>i  t.- 

3 

Q) 

bj 

o 

a;  CJ 

c^^ 

c 

cT 

I     X 

<:; 

X 

X 

rn 

IX  O  Cl,  CO 

CU   ^ 

E- 

H 

h- 

t^  :?.  LU  :-  F' 

SZ  —J 

V, 

y—i 

Ui 

tr 

.n-(  t_!  r;-]  o  CC 

fj 

'i 

>^ 

o  rr 

ac3 

C     C_)                              >H 

'-,  >- 

O  CU 

O  CJ                 C_) 

^J 

Cu                 CU 

W     CJ 

*     0")                   C'^ 

>,  0; 
<-•   E 


dJ-* 

SZ 

s:  f: 

o 

ai 

4-)     3 

rj 

3 

?-■'  c 

4-> 

Qj 

1-    4-» 

-U 

1    rc 

X 

f.fiX 

c 

CJ               4J 

c 

k-  Oj   c; 

1       >      rH 

JJ 

c;..  >  t-  cc  r-:  m  r:  cc 

o  >  :3  Cj  F-  H  X  X  cr:  H  [  ■ 

>-  u  r ;  t  J  cu  <f;  -  -  t'.  cc  o. 

cu  r;  £  •  —J  t-  -■:  Cii  d:  LU  c;  H 

o  i-:  Cii  en  c/^  u)  cc  cc  r:  ^  ci 

O  C  )  L-::  CJ)  ^  IT  u  U  u  Cj  ^ 


:  cr.  D-  i_i  X  X  CJf  X  X  x  cc  o  x 

J  L ,  (.n  <~.i  c^  F-  u  1  CJ  uj  ci  i :  lu  c-j 
)  m  -3  ■»  ^  CJ  C-  ^  o  ^  en  t.:i  ^ 


f^  «■.-: 

Cl.  CtJ 

.-r: 

7.- 

X  X 

CD  u 

-' 

H 

^ 

..     .. 

CJ  c: 

to  cr 

1 

X 

0  •- 

-iJ 

X 

«^  C3 

to    4J 

X 

X 

a  I'- 

Ci 

to 

f— 

CJ 

CJ   CJ 

— '  '"^ 

Ci,    to 

r. 

c  . 

' — ' 

-J  -J 

C--r-1 

J2 

^. ; 

F  Xi 

'■i 

<rr 

O       1 

rH 

7- 

1 

C>  r-o 

CJ 

Cu 

)iC      ^ 

* 

O 

C.J 

144        August  1979  ©  BYTE  Publications  Inc 


(a)  (DEF    PRIMT    CLA^IBDA     (F) 

(PROGiJ 

(PRINR    F) 
CPATCM    \'E',VLINE) 


)) 


) 


(DEF    PRINR     (LAMBDA    (F) 
(COtlD 

((ATOM    F)     (PATOH    F) ) 
(T    (PRCGM 

(PATOH  LPARFt:) 
(PRIMR  (CAR  F)) 
(PRINL  (CCR  F)) 


)) 


)) 


(PATCM    RPAREN) 


(L) 


(DEF    PRIML     (LAMBDA 
(CCtJr 

((DTPR    L)     (PRCG!; 
(PATCM    SPACE) 
(PRIHR     (CAR    L )) 
(PRINL     (CDR    D) 
)) 


)) 


) 


(b)      *    type  out 

PRIIIT  JSR 
BSR 
LDX 
BSR 
JMP 

•  type  out  £ 

*  clobbers 


a  form,  fuljy  parenthesized,  and  then  go  to  a  new  line. 


PRItlR 


PRIN'L 


PRPAR 


JSR 
PCC 
JSR 
LDX 
BSR 
JSR 
LDX 

:;sR 

JSR 
LDX 
JSR 
3CS 
JSR 
LDX 
BSR 
BRA 
LDX 
BRA 


PUSIIX 
PRINR 
CRLFAT 
PA  TOM 
POPX 

forin  ,    with 
X-re?, 

is A  TOM 

PA  TOM 

PUSHX 

LPAFAT 

PATOM 

TOPX 

CAR,  X 

PRI':R 

POPX 

CLR,  X 

isdtpr 

PRPAR 

PUSliX 

SPACAT 

PATOM 

PRItJL 

RPARAT 

PATCM 


save  X-reg  or.    stack 

simply    pass    the    buck    to    recursive    PRItJR 

type    out    CR/LF 

usins    PATOM 
restore    X-reg    and    return. 

no    CR/LF 

is    the    form    an    atom? 
yes,    pass    the    buck    to    PATOM 
nope,    stack    the    X-reg 
type    out    a    "(" 

restore    the    X-reg 
type    out    the    CAR 

(recur  si vel y! ) 
restore    pointer    to    the 
advance    to    next    dotted 

is    there    a    next    dotted    pair? 
nope,    JO    type    a    ")" 


dotted    pair 

pair     in    1  inked    1 ist 


yep, 
type 

and 

type 

and 


save    the 
out    a    space 


w    X-re^    again 


loop    around  . 

out    a    ")" 

return    (through    PATC 


Listing  6:  LISP  and  M6800  assembly  code  of  the  PRINT  routine. 


Text  continued  from  page  142 

when  encountered  (eg:  "("  and  ")")  without  any  separator 

characters  necessary. 

In  the  author's  LISP  system  RATOM  is  relatively 
sophisticated,  allowing  for  atoms  with  spaces  in  their 
names  if  they  are  quoted  ("...").  Also  the  single  quote 
character  (" '")  is  given  special  significance,  as  are  "[''  and 
"J".  However  a  simpler  RATOM  is  quite  enough  for  an 
initial  implementation.  To  make  this  exposition  simpler, 
only  single  digit  numeric  atoms  will  be  allowed.  Certain- 
ly in  an  eventual  implementation,  multidigit  numeric 
atoms,  optionally  preceded  by  a  minus  sign  would  be  ac- 
cepted. 

In  this  RATOM,  the  characters  are  copied  into  an  area 
set  aside  to  hold  the  names  of  atoms  as  they  are  input.  A 
null  character  (ASCII  code  zero)  is  used  to  terminate  the 
name,  when  a  separator  or  special  character  is  en- 
countered. If  the  name  is  entirely  numeric,  then  the  atom 
is  a  numeric  atom,  and  the  form  is  simply  the  value  of  the 
number,  with  the  high  order  bit  set,  and  one  other  bit  left 
zero  for  use  in  the  garbage  collector.  Otherwise  the  atom 
is  a  symbolic  atom,  and  a  scan  is  made  of  the  OBLIST  for 
a  pre-existing  atom  with  the  same  name.  If  one  is  found, 
the  characters  just  typed  in  are  thrown  away  and  a  form 
specifying  the  pre-existing  atom  is  returned.  If  the  atom  is 
a  new  one,  a  4  byte  cell  is  allocated  (using  GETCEL  defin- 
ed in  listing  4)  and  a  pointer  to  the  new  atom  is  added  to 
the  OBLIST.  A  form  specifying  the  new  atom  is  returned. 
The  M6800  assembly  language  code  for  this  is  in  listing  5. 

PRINT  Function 

PRINT  is  the  second  major  recursive  function  compris- 
ing the  LISP  interpreter.  It  takes  a  single  form  as  argu- 
ment, and  types  the  value  as  a  fully  parenthesized  LISP 
expression.  PRINT  simply  calls  the  more  primitive  func- 
tion PATOM  when  it  is  given  an  atom  to  type.  Other- 
wise, PRINT  types  a  left  parenthesis,  calls  itself  recursive- 
ly to  type  out  the  elements  of  the  list,  and  then  types  a 
right  parenthesis.  In  any  case,  PRINT  always  types  out  a 
carriage-return /line-feed  at  the  end.  This  can  be  coded  as 
in  listing  6. 


In  the  LISP  routines,  the  special  function  PROGN  is 
used.  PROGN  simply  evaluates  all  of  its  arguments  in  se- 
quence, and  then  returns  the  value  of  the  last  one  as  the 
value  of  the  entire  PROGN.  The  two  functions  ATOM 
and  DTPR  are  used  to  test  the  type  of  a  LISP  object. 
ATOM  returns  T  if  the  argument  evaluates  to  an  atom  — 
symbolic,  numeric,  or  NIL.  Otherwise  ATOM  returns 
NIL.  DTPR  is  the  exact  opposite.  It  returns  T  if  the  argu- 
ment evaluates  to  a  dotted  pair,  and  returns  NIL  other- 
wise. Such  functions  which  return  either  T  or  NIL  are 
called  "predicates"  in  LISP  in  analogy  with  predicates  as 
used  in  symbolic  logic.  Such  functions  in  other  languages 
are  called  Boolean  functions. 

Nowhere  in  the  routines  for  PRINT,  nor  for  that  mat- 
ter in  the  routines  given  earlier  for  READ,  is  the 
allowance  made  for  the  input  or  output  of  list  structures 
which  require  the  use  of  "dot"  notation.  A  structure  like 
(A  B  C  .  D)  could  not  be  input,  and  the  above  PRINT 
routines  would  type  it  out  as  (A  B  C),  simply  assuming 
that  the  atom  which  ended  the  linked  list  was  NIL.  It 
turns  out  that  the  changes  necessary  to  implement  dot 
notation  are  quite  straightforward.  For  example,  to  add  it 
to  the  LISP  version  of  PRINT,  only  the  routine  PRINL 
need  be  rewritten,  as  follows: 

(DEF  PRINL  (LAMBDA  (L) 
(COND 

((DTPR  L)  (PROGN 

(PATOM  SPACE) 

(PRINR  (CAR  D) 

(PRINL  (CDR  D) 
)) 

((EQ  L  NIL)  NIL) 
(T  (PROGN 

(PATOM  SPACE) 

(PATOM  DOT) 

(PATOM  SPACE) 

(PATOM  L) 
)) 


)) 


August  1979  ©  BYTE  Publications  Inc        145 


A  corresponding  change  could  be  made  to  the  assembly 
language  routines. 

As  with  the  primitive  function  RATOM,  the  function 
PATOM  turns  out  to  be  more  difficult  to  implement  than 
the  recursive  PRINT.  PATOM  must  distinguish  between 
symbolic  atoms,  numeric  atoms,  and  NIL,  and  act  accor- 
dingly. With  symbolic  atoms,  PATOM  simply  types  the 
null-terminated  name  of  the  atom.  With  numeric  atoms, 
PATOM  must  convert  back  from  the  internal  represen- 
tation of  the  numeric  value,  to  the  string  of  ASCII 
characters  which  represent  the  number.  With  NIL, 
PATOM  simply  types  'NIL '.  Listing  7  is  a  simplified  ver- 
sion of  PATOM  with  numeric  atoms  of  only  a  single 
digit. 

EVAL  Function 

The  EVAL  function  is  the  heart  of  the  LISP  interpreter. 
EVAL  accepts  one  form  as  an  argument,  and  evaluates  it 
according  to  the  LISP  convention:  the  value  of  NIL  is 
NIL,  the  value  of  a  numeric  atom  is  itself,  the  value  of  a 
symbolic  atom  is  the  form  associated  with  the  atom,  and 
the  value  of  a  list  is  determined  by  applying  the  function 
specified  by  the  CAR  of  the  list  to  the  list  of  arguments 
which  make  up  the  CDR  of  the  list. 

In  most  LISP  systems  at  least  two  distinct  kinds  of 
functions  exist,  SUBRs  and  LAMBDAs.  SUBRs  are  the 
built-in  functions  of  the  LISP  system,  written  in  machine 
code  (like  CAR,  CDR,  PATOM).  LAMBDAs  are  the 
user-defined  functions,  defined  like  (DEF  GCD  (LAMB- 
DA (X  Y)  ...)).  The  effect  of  such  a  DEF  is  simply  to 
define  the  list  (LAMBDA  (X  Y)  ...)  as  the  value  associated 
with  the  atom  GCD. 

The  type  of  object  used  to  specify  a  SUBR  function 
varies  among  LISP  systems.  Frequently  a  new  type  of  ob- 
ject is  defined,  called  CODE,  distinct  from  atoms  and 
dotted  pairs.  A  second  alternative  is  to  treat  SUBRs  like  a 
funny  kind  of  atom.  The  author's  LISP  system  treats  the 
bytes  which  make  up  the  machine  code  of  the  SUBR  like 
the  print  name  of  an  atom.  The  SUBR  is  then  specified  by 
a  dotted  pair,  with  the  CAR  being  the  atom  "SUBR"  to 
identify  the  type  of  function,  and  the  CDR  being  this 
atom  with  the  funny  print  name.  In  fact  the  print  name  is 
prefixed  with  a  special  string  which  is  unlikely  to  occur  in 
a  normal  atom's  print  name,  and  hence  PATOM  could 
detect  that  the  print  name  was  not  typeable,  and  simply 
type,  say,  "!"  instead.  In  addition  EVAL  can  check  for  the 
presence  of  this  special  string  at  the  beginning  of  the  print 
name  to  avoid  treating  a  normal  atom's  print  name  as 
machine  code.  This  method  for  specifying  SUBRs  avoids 
introducing  an  additional  type,  but  the  added  complica- 
tion in  PATOM  and  EVAL  may  rule  out  the  method  in 
some  implementations. 

When  EVAL  is  given  a  list  to  evaluate,  it  first  evaluates 
the  CAR  of  the  list  (recursively).  The  evaluation  of  the 
CAR  should  be  either  a  LAMBDA  expression,  or  a  SUBR 
expression.  If  the  evaluation  of  the  CAR  is  an  atom,  or  a 
list  not  headed  by  LAMBDA  or  SUBR,  then  EVAL  stops, 
and  indicates  an  error  to  the  user. 

If  the  CAR  of  the  list  gives  a  LAMBDA  expression,  the 
arguments  to  the  function  call  are  evaluated  one  at  a  time 
and  saved  on  a  list.  The  value  associated  with  the  "for- 


mal" arguments  of  the  LAMBDA  expression  (eg:  X  and  Y 
to  the  GCD  routine  given  earlier)  are  saved  on  the  stack. 
These  formal  arguments  are  then  set  one  at  a  time  to  have 
the  value  of  the  corresponding  actual  arguments  to  the 
function  (which  were  evaluated  already).  Finally,  the 
"body"  of  the  LAMBDA  expression  is  evaluated,  with  the 
formal  arguments  now  holding  their  new  values.  The 
result  of  evaluating  the  body  is  the  result  of  the  original 
function  call.  As  a  last  step,  EVAL  restores  the  original 
values  of  the  formal  arguments. 

Following  the  details  of  evaluation  of  such  a  function 
call  is  very  difficult  at  first.  The  sequence  of  these  steps  is 
critical:  evaluate  actual  arguments,  save  old  values  of 
formal  arguments,  set  new  values  of  formal  arguments, 
evaluate  body  of  LAMBDA,  restore  old  values  of  for- 
mals.  With  any  other  sequence  there  is  a  chance  that 
changes  to  the  formal  arguments  of  this  function  might 
interfere  undesirably  with  the  values  of  atoms  in  the  call- 
ing routine's  environment.  These  formal  arguments  are 
supposed  to  be  strictly  "local,"  that  is,  the  choice  of  a 
name  for  a  formal  argument  should  be  a  strictly  local 
decision,  having  no  impact  on  variables  with  the  same 
name  in  calling  routines.  Observing  these  rules  allows 
LISP  functions  to  be  freely  recursive.  As  the  above  ex- 
amples of  routines  demonstrate,  this  recursion  is  in  fact 
heavily  used  in  LISP  programming. 

The  steps  in  applying  a  SUBR  function  are  simpler, 
because  there  are  no  formal  arguments  to  worry  about. 
EVAL  simply  evaluates  the  arguments  to  the  SUBR,  and 
passes  them  as  a  list  to  the  machine  code  subroutine. 
EVAL  expects  the  result  of  the  SUBR  to  be  left  in  register 
X  when  the  subroutine  returns. 

This  much  of  EVAL  can  be  implemented  on  the  M6800 
as  in  listing  8. 

The  routines  EVLALS,  POPFRE,  EVLNSV,  EVLRSO, 
and  EVLRST  have  not  been  included  in  listing  8  for  bre- 
vity's sake.  They  are  all  relatively  straightforward 
routines,  making  heavy  use  of  GETCEL,  PUSHX,  POPX, 
and  FRECEL  to  build  up  and  then  release  the  lists  of  saved 
values. 

Two  additional  types  of  LISP  functions,  normally 
recognized  by  an  EVAL  function,  are  called  NLAMBDAs 
and  NSUBRs  (or  FSUBRs,  or  FEXPRs  if  you  prefer). 
These  types  of  functions  take  their  argument  lists  un- 
EVALed.  NSUBRs  are  simply  passed  the  CDR  of  the  ori- 
ginal function  call  list,  instead  of  a  list  of  evaluated  argu- 
ments. Similarly,  NLAMBDAs  are  provided  with  only  a 
single  argument,  the  list  of  unevaluated  arguments. 
Without  NSUBRs  it  is  necessary  for  EVAL  to  recognize 
functions  like  COND  as  special  cases,  so  that  their  argu- 
ment list  is  not  immediately  evaluated.  NSUBRs  are 
specified  in  the  same  way  as  SUBRs,  with  the  atom 
"NSUBR"  replacing  "SUBR"  in  the  CAR  of  the  dotted 
pair.  PRINT  will  type  out  NSUBRs  as  "NSUBR  .!)" 

NLAMBDAs  are  very  useful  for  creating  elaborate 
user-defined  functions  which  take  argument  lists  that  are 
as  or  more  complicated  than  COND.  NLAMBDAs  are 
necessary  anytime  the  number  of  arguments  is  variable, 
or  some  of  the  arguments  are  wanted  unevaluated. 

To  incorporate  NLAMBDAs  and  NSUBRs  in  the  above 

Text  continued  on  page  148 


146        August  1979  ©  BYTE  Publications  Inc 


01 

BO 


w.  cc    tJ3         E 

--O        ^    o 

a  \. 

U-     O   —   4-3 

X  <u 

G.          4-)    >i  CD 

OJ  X 

4-> 

■<    Qj  cc    0;    c: 

«— 1  -iH 

n  <z  >  m 

ra  <u 

c:  -D  o  -w 

w 

rH      O                M    -IJ 

OJ  o 

.-*    (U    u  .-f 

rH   4J 

4-J    O  4J    3    D 

>-t 

rH        ra  o  n 

•H    Q£ 

rH    :3   01    <u 

C 

C  rH  rH    i_    l_ 

-■rH 

>  w    03  --^ 

W   4J 

TO    X    >          W 

(U    c 

—I      <£  >  CO  : 

<  U  LiJ  l-H  [ 


O  [it:  0)  -^ 


X  en  a;  o   o 
o  o:  CO  o  ^  -s 

J  CQ  -3  CO   to  Q 


**-  <r: 

•O  CQ 
c  < 


4->     i- 


O    U  4-> 


<U    4-> 


-  o 


r-t     tX 

(X  <v 
Q.  i_ 


O  (U 

0;  OZ 

>  3  CD 

CD  O  =3 

to  c:  CO 


o  r- 


CD  4-1 

0,0    QJ     O 


-CQ      ".J    O  •'-<    <f 


to  ^: 


(0  «a: 

(U  > 


4-J  a.  cc  CO 

CD  v-J  <  =3 

I  u,  u  w 


.  H  O  0- 

CO  J  u 


CD  E-'  : 
CO  CQ  . 

-J  rc  ► 
>  <c  : 


CfX  ( 

UJ    CL   t 

CD  O  C 


0) 

J   C/0   iKi 

:;  cc  CD 
y  cc  cc 
H  UJ  a: 

T  =:;;  Li) 


c  c  cu 

O  1-  — I 

■rH  3  := 

JJ  4-> 

TO  01    QJ 

3  i_  j„ 

rH  O 

tD  (^     +J 

>  >    (0 

(D  CD    0; 


1 

D 

O 

rH     >» 

X 

O 

4-J   t^ 

<= 

>> 

ro  w 

l_ 

CL> 

o 

c 

■rH 

L- 

JD 

1-  t: 

4-> 

c 

O     W 

■rl 

3 

<u 

CD 

(1)    -rH 

tfl 

4J  c: 

r~4 

c 

cxj:: 

JJ 

c  o 

.   1 

r-f 

to    4-i 

OJ 

hH 

CD  t^H 

u 

T) 

O  4J 

iz 

o 

<"    c 

to 

O 

Q.  o 

-l-> 

o  o 

0) 

a 

--^  c: 

i- 

CO 

0; 

V- 

3 

O 

E 

QJ  -D 

q; 

10  t^ 

r 

CO 

O    OJ 

x: 

c: 

bO 

o 

o 

c 

tu  to 

jj 

■H 

k.<" 

■r-t 

4-> 

(U    3 

•  rl 

x: 

m  o 

L, 

CO 

■t-J 

to 

3 

o 

a> 

c 

tu  O 

nj  t-t  tt; 

E 

4-> 

k.  o 

c; 

• 

E 

OC) 

3 

O 

1- 

CX*'> 

1- 

?: 

u 

CJ 

c: 

CL 

.. 

3  a: 

OJ 

4-) 

i_  •— 

j-> 

o 

jr 

to  J-) 

t^ 

c^ 

o 

O  CM 

QJ 

u. 

j-> 

•rH       CO 

■rH 

•  rH 

4-> 

t"  ** 

L_ 

r-l 

•u 

r^ 

Jj 

k- 

I- 

-»-> 

Jit:  X 

XJ 

c 

rH 

^  c 

o 

o 

c 

cj  at 

c 

ro 

CD 

<C  .,-11 

^ 

i_ 

•r^ 

OJ  x: 

to 

O 

>  o 

L 

o 

s:  ^ 

UJ    Q. 

OJ 

tU 

a 

o 

3  tr;  a.  o-  a-  a. 
n  o  o  — I  o  —I 
01  u.  cu  :::  G,  u- 


0}  4J 


)  X  cc 

Q  CO 


3  X  DC  X  cc  X 
H  CO  t-  CO  t-- 

c  on  -3  01  -3  CO 


0^  a,  CO 
O  -I  O 
G-  <  u- 


CK  X  X  CO 
t/T  f-  Ci  h- 
"D  CO  —1  (X 


X 


O    ixlt^ 


to  L-  -H  X  3 

-iC  3  rH  4-> 

O  -^  OJ  (U 

O  OJ  CL  i-  U 

rH  k,  3     O 

4-)  -O 

CC  Q>  CJ    to  C 

CD  >  OJ  a>  to 


cc 


CO 


-liJ  OU)  5:eC2CX 

CCXCM^XO^XCCCUCC^ 

<     --tfi.  >    -«<>>    -o  c  o  > 

UO^UJ'^'&UJOJU.CL.U.UJ 


«c    W     ft    « 


to  CO  cc  T.  oz 

■H  ^        X  (x  O  cc 

rH    «3:  -LJ   H    lU 

^  G,  cc  _i  -a:  ^ 

tiD>  _i  Q  >  00   > 
i_  UJ  U-  C_J  UJ  l-H   Ul 

to 

D:XXujCEC0xx<i:G.uj<cG-uja:Xccx-c: 
OicoQQ— icooujCic:32:2:Ci^^coHoocjcc 

jJ-3_J^Ca'-3   CQCl_l_lC_(CC— lUOi'-^CO-J.-JCQ 

to 

3 
H  03 

>  w 


i-         o  <c 

CD  <^  tw  ^ 

o 

U-t         to  (^ 

O   10    OJ  o 

<U    3 

^-s   4-)     3    rH  >i 

•  to   rH     to  "O 

•  -rH     CD     >  O 

•  rH    >  X> 

3 

^^  a>  XJ  flj  o 

i«;    4J   rH     C  4J 

CO     o 

-3     3              OJ  4J 

v--  rH     O^     k-  C 

cc    >    O  -H 

<i:   >   CO  4J  o 

c-:i  Qj  tn  tn  CL 

CQ 

e: 

<£  00  >   O 

^  ^  CO   OO  X 

— ^  -a:  :^  CC 

^  ^  ^  ci,  cc 

tu  >  >  >  — I  -t: 

O  Ul  UI  UJ  u.  tj 


E  O 


O  4J  T3  Ik. 

^  rH  rH  X    3 

3  O  4J 

Oi  (o  a;  CI 

4-3  a-  OJ  i-  i- 

co  v_  i_  o 

3  O  4-3  "D 

rH  OJ  4-J  to     C 

CO  >  to  QJ    CO 

>  fo  at  k- 

a;  to  k. 


'^  G.  J  CL  ^ 

>  ^  >  ^  > 

Ul  U,  UJ  u.  Ul 


:a:ccxx  ccxccx*^: 
icocooo   OOHCOdCC 

)r3-3_J^     '-3C0-3_JCQ 


rH  p: 

CD  <C 

>  —j 


3 
O 

QJ 

C 

c; 

k. 

5 

^ 

•rH 

o 

0) 

Zj 

4-3 

<M4J 

c 

o 

3 

■H 

•H 

,,-^ 

E 

2: 

O 

<u  x> 

.P 

B 

4-3 

k- 

= 

k- 

4^ 

:3 

H^ 

OJ 

O 

>t  (0 

o 

iSo 

to 

t-   E 

tiO 

OJ 

k. 

<D 

X> 

^  *- 

O 

c: 

E 

CD 

E 

•P 

3 

-5 

_, 

4-3 

(«    4-3 

s: 

CL 

t.  •«-l 

o  u 

^ 

(0 

O 

■ri 

O    CO 

k. 

4-) 

o 

C 

<1> 

c  n] 

c; 

k. 

JD 

4-3 

•D   4J 

x: 

bo 

■rH 

a' 

4J    t^ 

B 

to 

(0 

4J 

t« 

k.  <« 

k.    o 

.C 

E 

N 

x; 

■rH     O 

i~ 

3 

o 

O    -rH 

o 

vi 

k, 

CiD-O 

O 

X) 

4J 

D. 

x: 

O 

(.^   4J 

<V 

to 

•iH 

Q> 

(^ 

Qi 

CO 

k- 

3  to 

k. 

O- 

3 

s 

4-3 

x: 

3    E 

4-3 

k. 

a; 

o 

QJ 

4J 

=    a   • 

O     CO 

-J 

CO 

01 

O 

4-3 

>-*  T3 

N 

■rH 

«        e: 

C 

E 

i-t  c: 

t—i 

,~^ 

c 

c 

4-> 

CJ 

C 

bO 

=     k.  o 

3 

0 

k. 

E 

k. 

o 

to 

4-3    4-3     CO 

Ol 

k. 

O  H* 

k. 

O 

O 

k.    -t-3 

4-3 

0 

E 

c: 

k- 

3    CD 

- 

o 

XJ 

4J   4-3    ■< 

8 

a; 

CJ 

t» 

4J 

CO  c; 

3 

u 

4-3 

u 

to 

o 

co 

O 

f\J 

(^ 

3    -rH    G. 

E 

4-3 

CD 

OJ   -rH 

o 

O 

to 

ai 

k. 

*. 

E 

s: 

1    ^    QJ 

- 

QJ 

o  c 

^ 

CD 

CD 

f*-. 

1-*  k. 

{« 

f 

4-3 

CD 

U 

V 

• 

C     O    4-3 

•— 

QJ 

r-i 

O    E 

,tj 

a 

■r^ 

O 

o  a  -u 

•H 

1 

x: 

to  s: 

-D 

n.  o  >i 

o 

XJ 

to 

at  E  O 

'r^ 

4-3 

E 

CJ 

x:  o 

4-> 

C 

>»rH   XI 

/\ 

O 

C 

a      k. 

^ 

4J 

l_ 

. 

k. 

-  o 

t: 

k. 

I-* 

o 

cc 

X 

3 

4-3 

1 

4-3 

o 

■rH 

>»  o  <« 

3 

3 

o  -J 

0) 

E  -^ 

OJ 

•rH 

01 

3 

OJ 

at 

O 

too 

>t  k. 

1 

•r^ 

to 

4J   4-3 

o 

t» 

hH 

E 

o 

CL 

k. 

4-3 

C 

x: 

o 

c 

k. 

dj 

C 

E   rH     <U 

X3  M 

c; 

i 

^ 

3 

4-3     k- 

>, 

D. 

-P 

,— 1 

£ 

CO 

k. 

u 

OCT) 

=T 

hH 

CD 

>.4J     k. 

c 

00 

c 

tO     Qj 

4-> 

rH 

to 

3 

4-3 

o 

1 

3 

4-3   O     L 

/\ 

CJ 

rH   -rH     3 

a 

0) 

4-3 

O 

rH 

-h> 

C 

4-3 

Q. 

X 

4J 

CD           O 

ro 

1 

CO 

c: 

a.  b0  4-3 

K, 

>, 

k. 

■U 

4-3 

o  c 

o 

4-3 

3 

o 

3 

bD 

O 

QJ 

- 

1 

-a: 

CD 

E   -rH     QJ 

^ 

4-3 

c 

C 

bO 

C 

4-3 

O 

c; 

OJ 

0 

at 

k. 

a    •  3 

C%J 

x: 

■H   XJ     k. 

X 

rH     O 

W 

■iH 

o 

r-* 

k. 

■H  5;    O 

O 

c: 

4.3 

[0 

a. 

. 

k. 

u 

o  a. 

x> 

c: 

C' 

4-3 

o 

4-3 

to 

c 

o 

■D 

k.    Q:    rH 

to 

•rH 

X)  x: 

o 

CO 

a^ 

ex 

D.X) 

z: 

x: 

C 

CL  C 

3 

CO 

X) 

4J 

C 

Ov    O 

4-3 

4-3 

at 

-  c  c 

a; 

> 

E  J-> 

CO 

i_ 

4-3 

■rH 

>. 

3 

> 

c; 

to 

CO 

E  U.  4-3 

■t-\ 

'r-i 

X! 

k. 

to  ot   to 

u 

(0 

o 

O 

>,  <u 

4-3 

o 

4-) 

■o 

CO 

(U 

3          QJ 

J3 

XI 

•c 

o 

QJ    to 

c 

1 

to 

no 

bP 

to     t30 

to 

Q. 

CD 

y_ 

c:   c   tiT 

CD 

E 

>> 

o 

X 

<« 

'2 

c: 

H 

t- 

y: 

xz 

o  -D  »- 

z 

ttl 

•rH 

«c 

■< 

X 

UJ 

< 

ZD 

Ul 

at  + 

:r> 

p 

5: 

s: 

. 

s: 

,    1 

Q 

LJ 

I^ 

7-. 

c  k- :?. 

t\J 

<j)  a 

TS 

E 

q: 

1— 1 

ID 

cc 

«=: 

HH 

J  X  t-  t-- 

<c 

az 

o    O  cc 

O 

CT. 

7^ 

*   H  t-^ 

k. 

bno 

:z 

z 

•< 

z: 

Z 

hH 

<i:  3 

O 

•H    4J  O 

o 

S: 

-    ID  -a; 

cu 

0 

a> 

U-  G. 

o- 

C_) 

CL 

o 

^ 

o 

G. 

CL 

CL 

U- 

w    to  U. 

^ 

^ 

:% 

0- 

=^..  CL    G. 

vC, 

Ci-i 

k- 

k. 

1 

QJ    >. 

a. 

o 

X 

>    TD 

E 

to 

E 

to 

<i: 

-o  QJ  •=!: 

<z 

•a: 

<s: 

■a: 

■x 

tn 

0 

QJ 

X  CD-  (- 

X  X 

< 

u 

CO 

X 

<c 

Occ 

X 

•s: 

X 

00 

Qj   1-  <3: 

cc 

o 

Q 

G. 

UJ 

«a:  oc  <i: 

^5: 

4-) 

> 

H  Ul 

.   [ 

UJ  Ot 

CC 

c_t 

u 

o 

o 

U)  CO 

:^ 

cc 

en 

H- 

•rH    rH   O 

00 

o  c:i 

E 

1—1 

Q  to  cc 

(C 

k. 

CO  CO 

ca 

O  -J 

CO 

u. 

u. 

wJ 

.   1 

CQ  ^ 

hH 

CD 

^ 

c=: 

(•-<     CO  _l 

^ 

<£ 

< 

u 

CO 

-j  -3  CQ 

tx 

c 

QJ 
(0 

•rH 

^    E 

1 

0) 

0/ 

r- 

E- 

Q.  u  h- 

> 

k. 

5! 

<i; 

■EC 

UJ 

=3 

E    O  <C 

-rH 

Q.O 

^ 

t: 

c:i 

■rH    t«    ?: 

C\J 

•a 

tlO 

H 

J 

hH 

•o: 

^ 

(0       rD 

>: 

<C 

hH 

-" 

^ 

<c 

-: 

a: 

>-j 

» 

at 

G. 

m 

S 

» 

ex. 

CL 

» 

G. 

»     »     0- 

0- 

2 


bo 


•a 


4-3   -O     Qj 


o 

CJ   4J' 


X3  O  , 

E 


k.  to  z;  ■ 

k. 

c  o  k. 
k.  CL  o 
3    E 

4J    0)  E 

QJ  4J  O 

k.  4-3 

E    TO 
-  k- 

bO  O    O 

Qj  tM   •ri    ■ 

k-        k-  , 
I   at  o>  . 

X   >    E 

CD    3 

e  to  c  ■ 


Qj         hH  -f 

to  cc  ^  £C 

(D  O  O  O 

Q-U.  z:  u. 


cc  cc 
Ci  o 
t-J  u. 


XUJetCCUXXXcO 
Qjf—— lOOOUJClh-E-* 

4-3ooa3jcccQQ-Jcocc 

(Tl 


CL  O 

_(  CD 

<  XI 

3  4J 

O  C 


e       X       X       X 

ox       s:       X  s: 

•rH  CL  CO  G,  CO   CL  CO  cc 

4-3^rj_i=Dj:=iO 
o<cg,u.g_:tO-U. 


X  d:  X  a:  X  cc  X 
ajOtOf^toc^ooQ 


August  1979  ©  BYTE  Publications  Inc        147 


COMPUTER/ 
COMMUNICATION 


SEMINARS 

OF  EXCELLENCE 


SNA  "  TELEPROCESSING" 

1       SYSTEMS         ^ 


COMPUTER 
NETWORKS 


I   NETWORKS  I  "='""""  I  PROTOCOLS  1 

-  "  PACKET     I  DATA  '  , 

SWITCHING  '   COMMUNICATIONS  '  ENCRYPTION  J 


SIX  DYNAMIC  3-DAY  SEMINARS 
BY  THESE  EXPERTS 

LUCKY -GREEN 

DATA  COMMUNICATION  SERVICES 
AND  PROTOCOLS 

CHICAGO  ■  OCTOBER  8-10.  1979 

KONHEIM 

ENCRYPTION  FOR  COMPUTER 
COMMUNICATION  SECURITY 

WASHINGTON,  D.C.  ■  OCT.  31  -NOV.  2,  1979 

KLEINROCK- 
FRANK- ROBERTS 

EXPERTS  ON  NETWORKS 

BOSTON  ■  NOVEMBER  7-9,  1979 

Mcquillan -CERF 

COMPUTER  COMMUNICATION  PROTOCOLS 

WASHINGTON,  DC.  ■  NOVEMBER  5-7,  1979 

CYPSER 

ALL  ABOUT  IBM's  SNA 

BOSTON  ■  DECEMBER  3-5,  1979 

KLEINROCK 

COMPUTER  NETWORKS 

SAN  FRANCISCO  ■  DECEMBER  3-5,  1979 


Seminar  Fee: 
$675 


Call  or  write  today: 

(213)476-9747 


!£B!TPi5TTTU¥e 

P.O.  BOX  49765,  LOS  ANGELES,  GA.  90049  (213)476-9747 


EVAL  routines,  two  additional  checks  must  be  added  im- 
mediately prior  to  EVLERR: 


BEQ  EVLLAM 
CPX  NSUBAT 
BEQ  EVLNSU 

CPX  NLAMAT 
BEQ  EVLNLA 

*    illegal  exp... 
EVLERR 


NSUBR? 

yes,  go  call  machine  code 

subroutine 

NLAMBDA7 

yes,  pass  list  of  args  as  single 

argument 


and  the  additional  routines  EVLNSU  and  EVLNLA  must 
be  included.  Both  of  these  routines  are  simpler  than  the 
corresponding  routines  EVLSUB  and  EVLLAM. 

To  make  EVAL  useful,  some  number  of  built-in  SUBRs 
and  NSUBRs  must  be  written.  The  number  of  such  built- 
in  primitives  can  be  kept  quite  small  in  LISP  if  they  are 
chosen  carefully.  Most  routines  can  be  implemented  as 
user  functions  if  a  few  primitives  exist.  The  primitives 
will  certainly  include  PATOM,  RATOM,  EVAL,  CAR, 
CDR,  CONS,  COND,  SET,  ADD,  SUB,  EQ,  GREATER, 
ATOM,  and  NUMBER.  All  but  SET  and  NUMBER  have 
been  used  in  the  LISP  function  listings.  SET  is  the 
primitive  LISP  assignment  function.  SET  takes  an  atom 
and  a  value,  and  sets  the  value  associated  with  the  given 
atom  to  be  the  given  value.  NUMBER  is  a  predicate  func- 
tion like  ATOM,  and  simply  returns  T  when  its  argument 
is  a  numeric  atom.  Listing  9  is  an  example  of  one  of  these 
primitives,  the  SUBR  EQ. 

Notice  that  the  SUBRs  and  NSUBRs  will  start  with  the 
preface  string  (hex  21,  00  is  used  in  this  system).  The 
argument  list  is  always  pointed  to  by  ALP.  Also  notice 
that  the  SUBR  may  not  assume  that  the  proper  number  of 
arguments  were  supplied.  The  general  rule  is  to  treat 


»    two    argument    SUBR    EQ 

•  return    T   if   given    identioel    forms,    NIL   otherwise 
EC5BR         FCB  $21  special    preface    string 

FCD  J  00 

•  ALP   points    to    the    list   of   evaluated    arguments 


LDX 

ALP 

get    first    arg 

BEO 

TRUE 

no    args    is    equivalent    to 
(EO   HIL    MIL ) 

« 

which    should    return    T. 

LDX 

CAR,X 

save    first    arg    tettipor  ar  i  1  y 

STX 

XTMP 

LDX 

ALP 

pick    up    second    arg 

LDX 

CDR.X 

BEQ 

EQSHIL 

(EC    X)    is    equivalent    to 
(EQ    X    NIL) 

LDX 

CAR.X 

EQSNIL 

CPX 

XTMP 

are    the    forms    identical? 

DEQ 

TRUE 

yes,    return    T. 

LDX 

ZERO 

no,    return    the    NIL    form 

RTS 

TRUE 

LDX 
RTS 

TATOM 

return    T   atom 

Listing  9:  EVAL  may  have  built  in  primitives  to  expand  the 
language.  This  is  an  example  of  the  primitive  SUBR  EQ. 


148      Augusi  1979  ©  BYTE  Publications  inc  Circle  365  OH  inquiry  card. 


The  face  is  (becoming)  familiar 


No  surprise... it  stands  out  in  the  crowd. The 
quality  and  reliability  that  Industrial  Micro  Systems' 
customers  have  grown  accustomed  to  is  now  avail- 
able in  our  complete  system.  A  system  that  will  grow 
with  your  needs. 

You  can  start  with  a  minimum  16K,  single  disk 
system.  The  system  shown  above  can  be  expanded 
to  608K-Bytes  of  fast  RAM  with  three  double-sided, 
double-density  drives.  And  more  to  come. 

The  microcomputer  industry  standard  CP/M™ 
operating  system  is  delivered  with  the  system. 
PASCAL  is  available.  Industrial  Micro  Systems  sys- 
tems users  are  developing  an  impressive  array  of 
application  software. 


The  system  is  offered  in  rack  mount  and  table 
top  versions  and  also  in  our  own  desk  enclosure. 

In  addition  to  gaining  in  familiarity,  the  Indus- 
trial Micro  Systems  picture  for  total  system  products 
should  be  coming  into  focus  for  everyone.  Advanced, 
reliable  electronics . . .  industry  standard  software . . . 
and  functional,  high  quality  enclosures. 

Industrial  Micro  Systems,  your  source  for  com- 
plete systems.  And  the  prices  are  right. 

Ask  your  dealer  to  see  the  full  Industrial  Micro 
Systems  line  of  products  and  be  watching  for  excit- 
ing new  additions  soon  to  come  from  Industrial  Micro 
Systems,  628  N.  Eckhoff  St.,  Orange,  CA  92668. 
(714)633-0355. 


INDUSTRIAL  MICRO  SYSTEMS,INC 

The  great  unknown. 


Circle  173  on  inquiry  card. 
CP/M  is  a  trademark  of  Digital  Research,  Inc. 


BYTE  August  1979 


149 


WITH  YOUR  LEVEL  II  TRS-80 

TRcopy  is  a  cassette  tape  copying  system  that  lets 
you  SEE  what  your  computer  is  reading. 

COPY  ANY  CASSETTE  TAPE*'^' 
With  the  TRcojjy  system  you  can  copy  any  TRS- 
80  Level  II  cassette  tape  whether  it  Is  coded  in 
Basic  or  in  machine  language.  You  can  also  copy 
data  created  by  progi'ams  and  you  can  copy  assem- 
bler listings. 

YOU  CAN  SEE  THE  DATA 

As  the  tape  is  heing  loaded,  you  can  SEE  the 
actual  data  byte-for-byte  from  the  beginning  to  the 
end  of  the  program.  Up  to  320  bytes  arc-  displayed 
at  one  time.  ASCII  characters  are  displayed  on  the 
first  line  and  hexadecimal  code  is  displayed  on  the 
following  two  lines.  Data  is  displayed  exactly  as  it 
Is  input  including  memory  locations  and  checksums. 

IDENTIFY  PROGRAMS 
With  TRcopy  you  can  identify  programs  on  cas- 
sette tapes  without  written  documentation  because 
you  can  SEE  the  filename.  If  you  forget  to  label  a 
tape,  you  can  use  TRcopy  to  display  the  tape  contents 
and  identify  the  cassette. 

VERIFY  CASSETTE  TAPES 
With  TRcopy  you  can  verify  both  the  original  tape 
and  the  tape  copies.  You  can  make  certain  that  your 
machine  reads  the  original  tape  correctly  and  that  it 
makes  byte-for-byte  copies,  TRco|)y  also  counts  as 
it  reads  giving  you  the  exact  length  of  the  data. 

MAKE  BACKUPS  FOR  YOUR  PROGRAMS 
Now  you  can  make  backup  copies  of  your  valuable 
programs.  Many  times  a  cassette  that  you  make  will 
load  better  than  one  that  is  mass  produced.  The 
original  can  then  be  kept  as  a  backup  in  case  the 
copy  is  damaged. 

MAKE  COPIES  OF  YOUR  SOFTWARE 
If  you  are  in  the  software  business  you  can  use 
TRcopy  to  make  tested  copies  of  your  programs  for 
sales  distribution.  TRcopy  produces  machine  lan- 
guage tajies  that  are  more  efficient  than  those  pro- 
duced by  the  assembler  itself. 

RECOVER  FAULTY  DATA 

With  TRcopy  you  can  experiment  with  the  volume 
and  level  controls  and  you  can  SEE  what  the  computer 
is  reading — even  if  your  computer  will  not  read  the 
data  through  normal  read  instructions!  In  this  way  it 
is  possible  to  read  and  copy  faulty  lajies  by  adjusting 
the  volume  control  until  you  SEE  that  the  data  is 
input  properly. 

SIMPLE  -  FASCINATING  -  FUN 

TRcopy  is  not  only  a  practical  utility  program.lt 
is  also  a  fascinating  graphics  program  that  lets  you 
SEE,  for  the  first  time,  cassette  data  as  your  com- 
jjuter  is  reading  it.  And  it's  as  simple  as  1-2-3. 
Just  load,  verify  and  copy.  You  will  now  be  able  to 
use  cassette  tapes  with  confidence  knowing  that 
TRcopy  is  there  when  you  need  it. 

The  TRcopy  system  is  a  machine  language  program 
with  documentation  explaining  tape  leaders,  sync 
bytes,  check  sums  and  other  formattingconventions. 
With  the  TRcopy  system,  you  can  SEE  what  you  arc 
doing! 


TRcopy  System  Including 
Cas&clle  Tope  and 


YOUR 
ORDER 


V  *-l 


£  s  =  s 


^  ^  -T3         2 


I-      6    - 

^        01   -D 


a. 


^3    01 

>■  -i 


>- 

a. 
o 
u 


°     o     =     "■   " 

»i    o    c  ■^    S 


TOLL  FREE 


SAME  DAY 
SHIPMENT 


unspecified  arguments  as  though  they  were  NIL.  In  EQ 
above,  this  gives  some  rather  strange  behavior,  where 
simply  (EQ)  will  always  return  T.  It  still  remains  for  the 
implementor  to  initialize  the  atom  EQ  to  point  to  a  dotted 
pair,  (SUBR  .  funny-atom),  with  the  print  name  of  the 
funny  atom  set  to  point  to  the  code  at  EQSBR  as  shown 
in  listing  9.  The  final  section  of  this  article  goes  over  some 
of  the  problems  involved  with  this  kind  of  initialization. 

Garbage  Collector 

A  garbage  collector  eventually  becomes  essential  in 
any  LISP  system.  It  is  possible  to  create  dotted  pairs  that 
are  no  longer  accessible  to  a  LISP  program  by  any  path. 
This  happens,  for  example,  if  a  function  like  REPLACE  is 
called  and  then  the  value  returned  simply  PRINTed  but 
not  saved  as  a  LISP  atom.  This  cannot  go  on  for  long 
before  all  of  the  free  space  is  used  up  with  dotted  pairs. 
The  garbage  collector's  job  is  to  find  all  of  the  dotted 
pairs. 

The  various  algorithms  for  locating  such  jetsom  of  the 
LISP  function  evaluation  process  are  all  quite  intricate. 
The  basic  idea  is  always  to  trace  systematically  down 
every  list  structure  to  its  component  atoms,  marking 
every  dotted  pair  encountered  along  the  way.  If  a  dotted 
pair  is  encountered  which  is  already  marked,  then  that 
branch  of  the  list  structure  is  assumed  to  be  already  fully 
traced.  The  garbage  collector  then  makes  a  sequential 
scan  of  all  of  memory  space  occupied  by  dotted  pairs, 
and  links  together  all  unmarked  dotted  pairs  onto  a 
special  list,  the  free  list.  During  the  scan,  the  marked  dot- 
ted pairs  are  simply  skipped  over,  because  they  are 
assumed  to  still  be  a  part  of  some  useful  list  structure. 
When  a  marked  dotted  pair  is  skipped  over,  its  mark  is 
also  cleared  in  anticipation  of  future  garbage  collections, 
when  it  might  no  longer  be  so  lucky. 

The  difficulty  with  this  trace  and  collect  algorithm  is 
that  each  dotted  pair  points  to  possibly  two  more  dotted 
pairs,  so  during  the  tracing  phase  the  garbage  collec- 
tor must  eventually  follow  both  paths.  What  this  means 
is  that  a  second  indication  must  be  made  on  each  dotted 
pair,  indicating  that  the  garbage  collector  is  now  busy 
tracing  the  CAR  of  this  dotted  pair,  and  will  be  returning 
later  to  trace  the  CDR  of  the  dotted  pair. 

During  the  tracing  phase,  the  garbage  collector  might 
very  well  be  thought  of  as  an  ant  determined  to  visit 
every  branch  of  a  tree.  It  goes  out  to  the  tip  of  each 
branch,  but  as  it  returns  it  must  remember  whether  it  has 
already  traversed  the  other  paths  going  out  from  each 
branching  point.  Even  this  analogy  underrepresents  the 
difficulty  of  a  garbage  collector,  because  the  ant  can 
simply  turn  around  when  it  reaches  the  tip  of  a  branch, 
but  the  garbage  collector  would  normally  have  no  clue  as 
to  how  to  climb  back  toward  the  root  of  a  list  structure 
once  it  gets  out  on  a  distant  dotted  pair. 

The  solution  to  the  garbage  collector's  problem  is  to 
either  reverse  all  the  pointers  in  the  list  structure  as  it 
forays  out  to  the  terminating  atoms  and  then  reset  the 
pointers  on  the  way  back  in,  or  to  keep  a  list  of  all  dotted 
pairs  which  still  require  that  their  CDRs  be  traced.  The 
first  solution  is  like  stringing  a  spool  of  thread  behind  you 
as  you  venture  into  an  unexplored  cave,  following  the 
thread  back  toward  the  mouth  of  the  cave  when  you 
reach  a  dead  end.  Of  course  the  same  danger  exists;  that 


ISO        August  1979  ©  BYTE  Publications  Inc 


Circle  96  on  inquiry  card. 


Circle  357  on  inquiry  card. 


The  garbage  collector  may  run  at  any 
moment. 


the  delicate  thread  leading  you  back  to  the  starting  point 
might  get  tangled  or  broken. 

The  second  solution  is  simpler,  but  suffers  from  the 
grave  problem  that  it  requires  room  to  store  the  list  of 
partially  visited  dotted  pairs,  and  garbage  collectors  tend 
to  be  called  upon  at  times  when  there  is  no  more  room  to 
spare.  In  fact,  the  list  of  partially  visited  pairs  need 
get  no  longer  than  the  maximum  "depth"  of  any  list 
structure  in  the  system,  so  that  by  setting  aside  a  small 
portion  of  memory  reserved  for  the  use  of  the  garbage 
collector's  list,  the  implementor  can  get  by  with  coding  a 
much  simpler  tracing  algorithm. 

The  author's  system  uses  the  pointer  reversal  method, 
and  he  will  testify  to  the  unlimited  number  of  obscure 
problems  which  can  appear  during  the  debugging  phase 
of  its  implementation. 

It  should  be  clear  now  why  it  was  important  to  leave 
one  bit  in  each  form,  and  hence  two  bits  per  dotted  pair, 
free  for  the  use  of  the  garbage  collector.  The  bit  in  the 
CAR  form  can  be  used  to  indicate  that  the  dotted  pair  has 
been  visited  once,  and  the  bit  in  the  CDR  can  be  used  to 
indicate  that  both  paths  from  the  dotted  pair  have  been 
traced.  These  bits  are  only  used  during  garbage  collec- 
tion, but  because  the  garbage  collector  may  be  called  at 
any  time  when  GETCEL  finds  that  there  are  no  more  4 
byte  cells  on  the  free  list  it  may,  in  fact,  run  at  almost  any 
moment. 

Because  of  this  unpredictability,  a  LISP  system  with  a 
garbage  collector  must  be  coded  "defensively,"  jealously 
protecting  any  dotted  pair  allocated  but  not  yet  added  to 
some  accessible  list  structure.  The  machine  code  routines 
given  in  the  listings  do  not  all  adhere  to  this  rule.  The 
reason  for  ignoring  the  garbage  collector  in  the  develop- 
ment thus  far  was  simply  to  keep  the  design  of  the  rou- 
tines simple  and  relatively  intuitive. 

If  the  reader  intends  to  include  a  garbage  collector  in 
an  implementation  of  a  LISP  interpreter,  more  care  must 
be  taken.  For  example,  two  versions  of  the  routine 
PUSHX  would  be  defined,  normal  PUSHX  and  PROPSH 
(protected  push).  The  PROPSH  would  be  used  when  the 
16  bit  value  being  pushed  on  the  stack  pointed  to  list 
structure  which  might  not  be  accessible  in  any  other  way, 
and  hence  might  get  collected  in  the  next  garbage  collec- 
tion scan.  PROPSH  avoids  this  danger  by  marking  the 
cell  used  to  store  the  saved  value  so  that  the  garbage  col- 
lector will  know  to  trace  this  form  and  its  descendents. 

Initialization 

It  is  ironic,  but  somehow  appropriate,  that  the  section 
on  initialization  comes  at  the  end  of  this  article.  Frequent- 
ly it  is  in  fact  one  of  the  last  things  an  implementor  thinks 
about.  That  is  probably  because  initialization  is  one  of 
the  biggest  difficulties  facing  the  implementor  of  any 
language:  assembler,  interpreter,  or  compiler.  By  ini- 
tialization is  meant  the  inevitably  awkward  methods  of 
getting  the  symbol  tables,  or  the  OBLIST  in  LISP  pre- 
loaded with  the  names  which  are  to  be  built-in  to  the 
system.  Most  of  the  routines  written  to  enter  symbols  in- 


TINY'  PASCAL 
for  TRS-80® 

&  NORTH  STAR® 

Now  you  too  can  have  Pascal!  The  Chung/Yuen  'Tiny'  Pascal  has 
been  specially  designed  for  TRS-80  &  North  Star  owners.  The  full 
power  &  elegance  of  'Tiny'  Pascal  is  at  your  command.  Programs 
written  in  'Tiny'  Pascal  run  at  least  4  times  faster  than  the  same 
program  in  BASIC!  'Tiny'  Pascal  is  also  a  great  way  to  learn 
Pascal  Programming,  &  fun  too. 

The  minimum  system  requirements  are:  Level  II,  16K  for  TRS-80, 
&  24K  for  North  Star  (specify  single  or  double  density). 

SOURCE  TOO! 
But  most  important,  you  also  get  source  to  'Tiny'  Pascal  written 
in  Pascal  with  each  purchase!  You  can  even  compile  the  com- 
piler! You  can  customize  your  own  version,  or  just  use  it  the  way 
it  is. 

'Tiny'  Pascal  is  a  subset  of  Standard  Pascal  &  includes: 
RECURSIVE  PROCEDURE/EUNCTION,  IF-THEN-ELSE, 
REPEAT/UNTIL,  'PEEK  &  POKE',  WHILE,  CASE,  &  MORE! 

(Plus  full  graphics  for  TRS-80  as  well) 

Also  you  can  save  &  load  programs. 

Tiny  Pascal  supplied  on  cassette  for  TRS-80  and  Diskette  for 

North  Star. 

You  get  all  this  &  more,  plus  a  user's  manual  for  $40.00. 

available  from: 

P.O.  Box  1628 
Champaign,  IL  61820 

(217)  344-7596 

_^All  orders  pre-paid,  Illinois  residents  add  5%  sales  tax 


HARD  DISC 
FOR  S100  MICROS 

The  XCOMP  DCF-10  Disc  Controller  pro- 
vides the  OEM  with  a  high  perfornnance, 
low.cost  interface forfixed  and  removable 
(2315  or  5440)  cartridge  disc  drives.  The 
DCF-10  is  currently  supported  by  two 
operating  systems.  For  information  or 
manuals,  contact  XCOMP. 


XCOMP 

INCORPORATED 

9915-A  Businesspark  Ave.,  San  Diego,  CA  92131  •  (714)  271-8730 
Circle  393  on  inquiry  card.  August  1979  ©  byte  Publications  Inc        151 


to  symbol  tables,  or  to  add  new  atoms  to  the  OBLIST, 
are  all  oriented  toward  names  entered  by  the  user  of  the 
language  processor.  The  initialization  phase  of  the  system 
becomes  quite  complicated  because  of  this  orientation. 
The  methods  finally  chosen  are,  in  general,  tedious,  re- 
quiring a  lot  of  special  preparation  by  the  writer  of  the 
intialization  routine. 

The  best  way  to  avoid  these  initialization  difficulties  is 
to  spend  a  little  extra  effort  in  designing  a  few  nice 
routines  for  taking  information  out  of  tables  which  are 
convenient  for  the  implementor  to  set  up  and  modify, 
and  let  these  routines  do  the  intricate  bit-twiddling  work 
necessary  to  get  the  objects  in  shape  for  the  symbol  table, 
or  the  OBLIST. 

In  the  author's  LISP  initialization  module  are  routines 
to  build  up  dotted  pairs  in  the  form  required  for  SUBRs 
and  NSUBRs,  and  routines  to  allocate  4  byte  cells  for 
built-in  atoms.  The  atom  initialization  routines  are  given 
the  address  of  a  contiguous  table  of  null-terminated 
ASCII  names,  each  followed  by  the  address  of  a  memory 
cell  where  the  form  specifying  the  new  atom  should  be 
stored.  This  is  where  the  symbols  like  TATOM, 
SUBRAT,  LAMBAT,  etc  came  from.  They  refer  to 
memory  locations  in  the  base  page  of  the  M6800  (0  thru 
255),  where  the  forms  specifying  the  atom  T,  SUBR,  and 
LAMBDA,  etc,  are  stored.  The  table  to  initialize  these 
atoms  was  simply: 


ATMTAB  FCC 

'T' 

FCB 

0 

FDB 

TATOM 

FCC 

'SUBR' 

FCB 

0 

FDB 

SUBRAT 

FCC 

'LAMBDA 

FCB 

0 

FDB 

LAMBAT 

FCC 

FDB 
FCB 


0 


null-name  terminates  table 


Although  writing  the  special  initialization  routines  was 
initially  time-consuming,  it  was  more  than  compensated 
for  by  the  ease  of  adding  more  built-in  atoms  as  the 
system  grew. 

Conclusion 

We  have  traced  through  the  implementation  of  a  LISP  in- 
terpreter and  looked  at  a  specific  example  for  the  M6800 
processor.  For  further  information  on  the  garbage  collec- 
ting routines  and  a  complete  listing  of  the  interpreter, 
order  BYTE  document  number  112.  ■ 


NyMil68 


The  Nybbles  Library  is  an  inexpensive  means  for  BYTE 
readers  to  share  some  interesting  but  specialized  forms  of 
software.  These  programs  are  written  by  readers  with 
small  computers  and  printer  facilities,  and  are  therefore 
designed  for  particular  systems.  The  algorithms  and  pro- 
gramming techniques  in  these  programs  can  be  directly 
used  by  readers  with  similar  equipment ,  or  can  serve  as 


an  inspiration  for  improvisation  on  computers  of  dif- 
ferent characteristics. 

Potential  authors  for  such  programs  should  send  us  a 
self-addressed  stamped  envelope,  with  a  request  for  a 
copy  of  our  "Guideline  for  Nybbles  Authors. "  Payment 
for  Nybbles  items  is  based  on  sales  and  length  of  the  item. 
Rates  are  set  when  author's  proofs  are  returned. 

Nybbles  Library  programs  are  sent  in  listing  form, 
printed  on  8.5  by  11  inch,  three  hole  punched  paper  for 
collection  in  loose  leaf  binders. 

This  month  "An  M6800  LISP  Interpreter"  has  been  ad- 
ded to  the  Nybbles  Library.  To  order  your  perso)ial  copy 
at  $10.00  (US  and  Canada),  $12.00  (foreign  airmail) 
postpaid,  fill  out  the  coupon  below. 


Please  send 


copies  of  BYTE  Nybble  L 


at  $_ 


postpaid. 


Please  remit  in  US  funds  only. 

Check  Enclosed 

Bill  my  VISA  #  

Bill  my  MC  #     

Name 

Street 

City   


.  Exp  Date 


.  Exp  Date 


State 


Zip  Code 


BYTE  Nybbles  Library,  70  Main  St,  Peterborough  NH  03458 

You  may  photocopy  this  page  if  you  wish  to  l<eep  your  BYTE  intact. 


152        August  1979  ©  BYTE  Publicalions  Inc 


NEW  POWER  FOR 


•m:9i,VJ'Jn:-§i§:i^l»'i,^, 


MOUNTAIN  HARDWARE. 


ROMPLUS+ 


.  "^ 


''i,* 


NEW  EXPANDABILITY. 

ROMPLUS+  is  a  peripheral  board  whose  added  features 
can  turn  the  Apple  II*  into  the  most  powerful  personal 
computer  available  today. 

NEW  POWER. 

ROMPLUS+  provides  six  sockets  to  accept  individually 
addressable  2K  ROM's  or  EPROM's.  Keyboard  Filter'-, 
a  2K  ROM  program,  comes  installed  on  the  ROMPHJS+ 
board  and  adds  many  useful  features  to  your  Apple  II, 
including: 

•  Upper  and  lower  case  letters.  The  only  system  that 
offers  keyboard  input  and  standard  shift  key  operation. 

•  Multiple  user-defined  character  sets. 

•  Colored  or  inverse-colored  letters. 

•  Keyboard  macros— two  key-stroke,  automatic  typing  of 
multiple,  user-defined  words  or  phrases.  Including 
BASIC  and  DOS  commands. 

•  Mixed  text  and  graphics. 

•  Improved  cursor  control. 

•  STOP  LIST  and  END  LIST 


•  Works  with  Integer  BASIC,  RAM  or  ROM  Applesoft, 
and  DOS. 

•  And  more... quick  to  learn.  Easy  to  use. 

•  Software  support  provided  on  disk  includes 
demonstration  programs  and  two  Editors  that  allow  you 
to  define  your  own  characters  or  keyboard  macros. 
SOPHISTICATED  FIRMWARE. 

In  addition  to  the  Keyboard  Filter  ROM,  ROMPLUS-f 
offers  five  sockets  for  ROM  or  EPROM,  plus  "scratch- 
pad" RAM.  And,  sophisticated  firmware  on  ROMPLUS-f- 
allows  one,  two,  or  more  of  its  chips  to  be  used  simul- 
taneously for  programs  longer  than  2K. 
EXPANDED  UTILITY. 

Many  software  programs  really  ought  to  be  utilized 
as  firmware.  ROMPLUS-l-  makes  that  an  actuality  for 
the  Apple  II  by  providing  six  additional  ROM  sockets. 

AT  YOUR  DEALER.  NOW. 

$169.  Complete  and  tested.  Including  the  powerful 
Keyboard  Filter  ROM  and  full  documentation.  Ask  your 
dealer  for  a  demonstration. 


OS  Mountain  Hardware,  Inc. 


'& 


LEADERSHIP  IN  COMPUTER  PERIPHERALS 

300  Harvey  West  Blvd.,  Santa  Cruz,  CA  95060 
(408)  429-8600 

Sounds  great. 

n  Please  send  me  all  the  details  on  ROMPLUS+  and 
Keyboard  Filter. 

Name 


Address. 

City 

Phone 


.  State. 


_Zip_ 


"Apple  II  Is  a  trademark  of  Apple  Computer,  Inc. 


Circle  258  on  Inquiry  card. 


BYTE  Augusl  1970         153 


Text  continued  from  page  8: 

Gary  also  wanted  readers  to  understand  that  the  LISP 
of  the  "Lots  of  Infernal  Stupid  Parentheses"  does  not 
represent  the  essential  beauty  of  this  approach.  This 
relatively  awkward  notation  is  the  assembly  language  of 
a  LISP  machine.  It  suffers  from  all  of  the  disadvantages  of 
assembly  languages.  Relatively  simple  to  program,  this 
"S-expression"  form  of  LISP  notation  is  one  that  is  most 
often  implemented,  and  it  tends  to  give  a  distorted  view 
of  the  language.  Gary  wanted  readers  to  understand  that 
the  alternative  "M-expression"  form  of  LISP,  with  special 
characters  noting  relationships,  is  perhaps  the  most 
elegant  and  natural  form  of  expression  for  many  pro- 
blems. Rarely,  however,  does  anyone  implement  an 
"M-expression"  oriented  version  of  LISP  at  the  user  soft- 
ware level. 

The  problem  is  similar  to  that  of  the  language  APL, 
with  one  notable  difference.  In  APL  a  special  character 
set  was  invented  and  assigned  to  the  language  for  use  in 
representation  of  the  new  abstractions  involved.  The 
same  could  be  done  for  LISP  if  an  "M-set"  and  an 
automatic  "pretty-printer"  were  employed  at  the  user's 
terminal  interface,  instead  of  a  lot  of  parentheses  and 
ASCII  codes. 

One  explanation  for  the  reason  that  LISP  has  not  yet 
caught  on  as  generally  as  APL  might  be  the  fact  that  APL 
was  first  developed  on  large  IBM  computer  equipment 
with  an  elegant  user  interface.  IBM  Selectric  printing  ter- 
minals were  available  to  be  adapted  to  a  natural  expres- 
sion APL  via  the  "APL-ball,"  while  LISP  was  seldom  used 
with  IBM  equipment  during  its  period  of  development  as 
a  tool.  With  today's  technology  of  personal  computer 
graphics,  the  same  principle  can  be  adapted  to  the  user 
interfaces  of  LISP  software.  The  best  LISP  packages  for 
personal  computers  should  incorporate  an  appropriate 
display  philosophy  which  allows  the  elegance  of  the 
language  to  shine. 

[While  on  this  subject  of  "today's  technology,"  we 
have  also  heard  some  exciting  words  about  a  computer 
system  design  from  the  Laboratory  for  Computer  Science 
at  MIT.  This  is  only  an  advance  hint  of  what  may  come. 
The  machine  is  described  as  an  experimental  computer 
with  a  very  high  resolution  (1024  point)  black  and  white 
display,  32  bit  internal  architecture,  an  advanced  LSI 
processor  such  as  Z-8000  or  68,000,  gobs  of  memory  im- 
plemented with  65,536  (64  K)  bit  parts,  and  an  advanced 
operating  system.  As  a  commercial  product  it  may  be 


available  in  12  to  24  months  in  a  price  range  of  about 
$5000.  The  word  I  have  from  its  designer,  Steve  Ward,  is 
that  the  technology  has  been  transferred  by  license  to  a 
commercial  firm  which  has  existing  interests  in  personal 
computing  products.  MIT's  motivation  with  respect  to 
having  a  commercially  manufactured  version  is  to  be  able 
to  buy  several  hundred  of  the  machines  for  local  use  in  its 
technological  community.  We  may  have  thought  that  the 
past  two  years  were  exciting,  but  the  field  has  hardly 
begun  its  maturation...] 

This  series  of  BYTE  August  issues  on  languages  empha- 
sizes the  fact  that  no  one  language  will  optimally  satisfy 
all  uses.  Just  as  people  continually  create  new  forms  of 
expression  in  any  art,  the  history  of  computing  has 
demonstrated  a  similar  tendency  toward  a  variety  of 
forms  of  expression  for  algorithmic  and  data  concepts. 
Our  coverage  of  APL,  Pascal,  and  LISP  by  no  means  ex- 
hausts the  possibilities.  In  my  own  biased  space  of 
language  concepts,  I  see  potential  future  August  issue 
attention  to  the  concept  of  threaded  interpretive 
languages  such  as  FORTH,  and  languages  which  it  in- 
spired, like  URTH.  Other  possible  linguistic  points  of 
discussion  might  include  string  languages  such  as 
SNOBOL,  and  even  macro  languages  like  GPM  and 
Calvin  Mooers'  TRAC.  Then  there  are  such  concepts  as 
data  base  languages,  and  the  whole  issue  of  designing 
language  technologies  for  special  applications  such  as 
music,  architectural  concepts,  graphics,  etc. 

The  fundamental  point  of  this  essay  still  remains:  no 
one  language  will  optimally  satisfy  all  the  needs  of  all 
users.  Some  people  care  only  about  quick  implemen- 
tation and  debugging,  and  do  not  really  care  about  speed. 
Some  people  just  like  one  particular  style  of  expression. 
Some  people  think  literally  in  tree  forms  and  have  to 
strain  to  think  in  sequential  processing  forms.  To  the  ex- 
tent that  programming  concepts  are  universal,  choice  of  a 
language  is  often  a  matter  of  personal  aesthetics.  And 
where  languages  go  off  in  one  or  more  partially  or  wholly 
orthogonal  conceptual  directions,  then  the  choice  of 
language  is  based  upon  the  underlying  uses  of  the  tool. 
(Fuel  for  a  number  of  heated  arguments  is  present  in  the 
determination  of  just  what  is  an  orthogonal  conceptual 
direction.) 

While  on  the  subject  of  different  languages  and  choices 
of  tools,  I  should  mention  one  of  the  most  exciting  items 
seen  at  the  recent  West  Coast  Computer  Faire.  This  item 


VAK-1  MOTHERBOARD 

•  Designed  specifically  for  use  with  the  AIM-65,  SYM-1,  and  KIM-1  microcomputers 

•  Standard  KIM-4*  Bus 

•  Fully  buffered  Address  and  Data  Bus 

•  Provides  8  expansion  board  slots 

•  Complete  with  rigid  card-cage 

•  All  IC's  are  socketed 

•  Provides  separate  jacks  for  one  audio-cassette,  TTY,  and  Power 

•  Completely  assembled  (except  for  card-cage) 

We  manufacture  a  complete  line  of  high  quality  expansion  boards.  Use  reader  service 
card  to  be  added  to  our  mailing  list,  or  U.S.  residents  send  $1.00  (International  send  $3.00 
U.S.)  for  airmail  delivery  of  our  complete  catalog. 
'Product  of  MOS  Technology 


PRICE:  $129.00 

We  also  carry  the  SYM-1 
Microcomputer  with  manuals  $269.00 


i]RNB>- 


ENTERPRISES 

INCORPORATED 


2967  W.  Fairmount  Avenue  •  Ptioenix,  AZ  85017  •  (602)  265-7564 


1S4        August  1979  ©  BYTE  Publications  Inc 


Circle  325  on  inquiry  card. 


Buy  this  book  at 
your  favorite  com- 
puter bookstore 
or  direct  from 
BYTE  BOOKS.™ 

Add  60c  per  book  for 
postage  and  handling 


The  marvelous 

computer  projects  that 

Steve  Ciarcia  has  constructed  in  his 

cellar  are  explained  in  detail  so  that  you 

can  make  your  microcomputer  perform  the  same 

useful  functions.  Each  article  is  a  complete  tutorial, 

presented  in  such  an  easy-going  style  that  even 

beginners  can  understand  and  enjoy. 


zaJB[l[l^sL\X^ 


"BOOKS  OF  INTEREST  TO  COMPUTER  PEOPLE" 

70  iviain  Street    Peterborough,  New  Hampshire  03458 


Circle  36  on  inquiry  card. 


BYTE  AugusI  1979         155 


is  a  whole  new  language  for  interaction  with  computers 
at  an  intellectual  user's  level.  As  a  tool  for  use  with  com- 
puters, this  language-like  method  of  structuring  an  inter- 
face is  completely  orthogonal  to  any  conventional  se- 
quential language  from  BASIC  to  Pascal,  although  its 
conceptual  underpinnings  are  very  LISP-like.  The  pro- 
duct has  roots  in  the  artificial  intelligence  community, 
and  it  is  a  direct  result  of  the  programming  efforts  of  two 
gentlemen  with  strong  ties  to  the  MIT  computer  science 
scene,  Dan  Bricklin  and  Bob  Frankston.  It  is  presently 
available  on  the  Apple-II  computer,  and  will  soon  be 
available  on  Atari,  Pet  and  TRS-80  computers. 

Dan  and  Bob  have  formed  a  firm  of  their  own  called 
Software  Arts  Inc.  Their  only  customer  is  Personal  Soft- 
ware, a  company  formed  last  year  by  another  graduate  of 
the  Cambridge  computer  scene,  Dan  Fylstra  (along  with 
Peter  Jennings  of  Microchess  fame).  The  Personal  Soft- 
ware company  distributes  this  new  product  exclusively, 
at  retail  cost  and  through  manufacturers.  The  product  is 
called  "Visi-Calc."  The  first  "public"  showing  of  Visi- 
Calc  occurred  last  May  in  the  form  of  a  hospitality  suite 
at  the  Fourth  West  Coast  Computer  Faire  in  the  San  Fran- 
cisco Convention  Center.  The  display  was  oriented  to 
dealers  and  manufacturers.  Advertisements  have  ap- 
peared earlier  this  year,  and  we  should  see  more  detailed 
publicity  by  the  time  of  this  issue. 

As  an  interactive  screen  oriented  piece  of  software, 
Visi-Calc  makes  the  memory  of  the  computer  a  logical 
"blackboard"  where  data  is  remembered  along  with  rela- 
tionships. This  last  phrase,  "along  with  relationships,"  is 
the  key  element  of  the  concept.  When  I  record  some 


giaciniioiiootooooimcinmocoooooimooiiooiooiiDOooaogaoiiooooooai 


TRS-80 ...  all  business!  ! 

...with  CP/M,  CBASIC2, 
&  applications  software. 

CP/M  Operating  System  (w/Editor,  Assembler, 

Debugger,  Otilities  &  6  manual  set) $150 

CBASIC2  Compiler  (w/manual) $  95 

DESPOOL  Print  Spooler  (w/manual) S  75 

*Osborne  &  Assoc.  PAYROLL  W/COST 

ACCTNG $250 

*Osborne  &  Assoc.  ACCTS.  RECEIVABLE  & 

ACCTS.  PAYABLE $250 

*Osborne  &  Assoc.  GENERAL  LEDGER $250 

*=CBASIC2  source  programs;  add  $15  (each)  for 
applicable  O  &  A  book. 

APH  -  Self-administered  Automated  Patient 

History $175 

DOWNLOAD -TR-80  (or  other) 
CP/M  to  CP/M $95 

data/program  (source  or  object)  transfer  over 
RS232link 

Send  30<i  SASE  for  add'l.  Software  avail,  (including 
CP/IVl  Users  Group  software)  and  FREE  "CP/M  Primer." 
CA  residents  add  6%  tax.        Visa,  M/CIVI/O, Check  OK. 


(714)  848-1922 


8041  NEWMAN  AVENUE     •     SUITE  208     •    HUNTINGTON  BEACH.  CALIFORNI A  92647 


number,  eg:  3.1415927,  at  an  intersection  of  the 
blackboard's  coordinate  grid  named  [B:32],  that  number 
is  stored  in  that  location  on  the  blackboard. 

Since  available  memory  is  much  larger  than  the  visible 
screen,  I  can  use  cursor  controls  to  make  my  display  win- 
dow examine  any  portion  of  the  total  blackboard.  I  might 
move  to  location  [A:12]  and  write  the  value  of  some 
angle,  perhaps  0.33  radians.  I  can  refer  to  other  locations 
in  defining  a  relationship  for  some  location  instead  of  raw 
data. 

Suppose,  then,  that  I  put  the  relationship: 

"SIN([A:12]  *  [B:32])  -  COS  (-  [A:12]  *  [B:32])" 

in  location  [Z:21].  Location  [Z:21]  now  depends  upon 
locations  [A:12]  and  [B:32].  I  can  then  move  the  cursor 
back  to  [A:12]  and  put  in  any  angle  that  I  like,  for  exam- 
ple 1.2.  On  changing  any  such  location,  Visi-Calc 
automatically  searches  the  tree  of  dependent  expressions 
and  evaluates  new  data  for  such  locations.  The  depen- 
dency can  effectively  go  through  many  levels  of  calcula- 
tion so  that  we  can  look  at  any  intermediate  stage  of  a 
calculation  by  noting  it  on  the  blackboard.  When  I  return 
to  location  [Z:21]  with  the  cursor  controls,  I  will  find  the 
results  of  the  [Z:21]  expression  as  calculated  with  the  new 
data.  All  pointing  is  done  via  cursor  movements,  so  for 
the  most  part  users  never  even  refer  to  the 
"[letter:number]"  coordinates  of  places  on  the 
blackboard. 

The  same  technique  can  be  applied  to  many  program- 
ming tasks  of  an  ad  hoc  nature;  for  personal,  business, 
engineering  and  scientific  applications.  The  software 
handles  strings  as  well  as  arithmetic  data  and  includes  a 
full  set  of  engineering  and  scientific  functions  such  as  the 
transcendentals  used  in  the  above  example.  Visi-Calc  has 
to  be  one  of  the  neatest  software  innovations  of  1979,  if 
not  the  most  fundamental  new  concept  to  date  in  the  per- 
sonal computing  field.  It  will  certainly  be  used  as  a  prac- 
tical piece  of  software  by  many  of  our  readers  with 
various  mass-marketed  small  computers. 

An  interesting  comment  was  noted  by  authors  Bricklin 
and  Frankston  and  relayed  in  a  recent  conversation  with 
Dan  Fylstra  of  Personal  Software.  The  comment  was  that 
the  techniques  used  in  Visi-Calc  are  possible  only  when  a 
full  processor  is  totally  available  to  one  user  as  a  personal 
computer.  The  calculational  bandwidth  required  to  sup- 
port this  sort  of  technique  is  impossible  to  find  at 
reasonable  cost  in  a  traditional  large  computer  time  shar- 
ing system.  It  only  works  when  the  concept  of  "one  user, 
one  processor"  is  employed,  ie:  when  the  computer 
power  is  "personal."  As  part  of  Visi-Calc's  authors' 
experiences  at  MIT  over  the  past  decade,  they  often  had 
this  kind  of  relationship  with  traditional  main  frame  com- 
puters like  PDP-lO's  and  IBM  370's.  Such  excessively  ex- 
pensive computing  power  devoted  to  one  user  is  not 
possible  outside  of  a  research  context.  With  the  coming  of 
the  current  age  of  microcomputing  however,  the  personal 
(one  user,  one  processor)  approach  is  possible  on  a  wider 
and  less  expensive  scale.  The  products  that  are  now 
available  in  this  market  for  under  $3000  are  getting  very 
close  to  the  level  of  power  which  was  restricted  to 
research  laboratories.  Software  products  like  Visi-Calc 
take  advantage  of  this. 


156        August  1979  ©  BYTE  Publications  Inc 


Circle  85  on  inquiry  card. 


Model  9SSrtJ:tCSll*git  LCD  display  '    It^e^  3%  digit  LCD  tjiptay 

DIGITAL  MULTIMETER  $149       DIGITAL  CAPACITANCE  METER  ..$149 


New  Data  Precision  super-accurate  portables. 
To  use  'em  is  to  love  'em.  Or  your  money  back.* 

Both  meters  feature  Vz'  LCD  display,  200  hour  battery  life  (9  volt  alkaline), 
pushbutton  ranging,  tough  construction,  good  electrical  protection,  and  only 
one  calibration  adjustment.  These  meters  boast  the  best  accuracy  specs  in 
their  class,  and  represent  the  best  value  in  portable  meters  today.  In  stock  now! 


(PLEASE  CALL  US  FOR  QUANTITY  DISCOUNT  QUOTE) 


Please  send  me Model(s)  935 (S  5149 

Please  add  the  following  options: 

BE9  Battery  Eliminator  (120VAC±10%.  50-60H2),.(9i  $15 

CSll  lOA  Current  Shunt (a  $20 

.IP151  Clamp-On  Current  Probe  (2-1  BOA) (s>S65 

IPlOOl  Clamp-On  Current  Probe  (10-1000A) @  $139 

FF471    RF  Probe  (to  TOOMHzl @  $99 

RFHl  Retractile  hook  probe  tip  for  RF471 @  $5 

T5  Test  Leads  @  $5 

T7  Uniuersa!  Test  Lead  Kit @$12 

.TPl  51  Temperature  Probe  (-60°to+  1 50°  C) @  $95 

V41 A  High  Voltage  Probe  (40kVDC) (a  $45 


Please  send  me. 


.Model(s)938 (5)S149 


Please  add  the  following  options: 

BE9  Battery  Eliminator  (120VAC±10%  50-B0Hz)..(a  $15 

CC35  Carrying  Case  @  $5 

^LCl  Plug-in  Lead-Clip  Test  Fixture (Si$7.50 

T9  12"  Test  Leads  with  Alligator  Clips @>$5.50 

SUB  TOTAL $  

STATES.  LOCAL  TAX  (if  any) $  


SHIPPING  &  HANDLING $  5.00 

TOTAL  AMOUNT  OF  ORDER $ 


mti 


Applications  Specialists  and  Distributors 

of  Computer  Terminals,  Peripherals,  Power  Conditioning  and  Instrumentation 

159  Northern  Boulevard/Great  Neck,  New  York  11021 

516/482-3500,  212/895-7177,  Outside  N.Y.S.:  800/645-8016 

I  CAN'T  WAIT  TO  GET  MY  HANDS  AROUND  THEM! 

n  Check/IVI.O.  enclosed  □Bill  Visa  JZlBill  American  Express 

Card  No. Expiration  Date 

Signature . 

Name  (Please  print) 

Title  

Company 

Address 

City 

Phone 


.State. 


-Zip. 


''If  you  are  unhappy  with  these  meters  for  any  reason,  return  them  to  us  within  ten  days  in  good  working  order,  and  we  will 

refund  your  money  less  our  costs  for  shipping  and  handling. 


BYTE  August  1979         157 


HONEST 

,  useD 
IcompuTeRS 


Zo,ooo 

oft. 
2o  DAV5 


^^•\^»ss 


'\,.and  this  one  was  owned  by  a  little  old  lady  who 
only  used  it  once  a  month  to  balance  her  checkbook.  " 


Belals'  Master  Index  Can  Give  You  Access  to 
$14,836.14  Worth  of  Computer  Programs 
for  Just  $5.95! 

Special  Pre-Publication  Offer 


You  paid  hundredsor  even  thousands  of  dollars 
for  your  new  microcomputer.  By  now  it  may  be 
dawning  on  you  that  a  SI. 000  computer  with  no 
software  Is  just  StOOO  worth  of  scrap  melal! 

But  computer  programs  cost  money.  In  a  recent 
survey  of  1.984  computer  programs  offered  for 
sale  in  the  top  three  home  computer  magazines. 
the  average  price  was  found  to  be  S27-94.  What  a 
rip-off! 

You  don't  need  lo  spend  hundreds  of  dollars  to 
get  a  complete  library  of  programs  for  your  com- 
puter. That  is.  you  don't  if  you  have Belals' Master 
Index  to  Computer  Programs  in  BASIC. 

Belals'  Master  Index  gives  reviews  of  531  pro- 
grams that  have  appeared  in  10  major  home 
computer  magazines— programs  that  you  can 
type  into  your  computer  for  free! 

This  is  not  just  a  simple  listing  of  a  bunch  ot 
article  titles,  but  a  complete  reference  work!  Each 
BMI  review  is  complete— it  has  everything  you 
need  to  know  about  a  program.  A  brief  index  line 
capsulizes  the  review  tor  quick  reference.  Source 
information  shows  you  where  the  program  can  be 
found.  Any  updates  or  corrections  are  shown  so 
you  know  the  information  is  accurate  and  com- 
plete. The  text  of  the  review  gives  you  a  full 
description  of  what  the  program  does.  In  addition, 
the  review  gives  you  detailed  technical  informa- 
tion about  what  hardware  and  software  the  pro- 
gram needs.  Everything  you  need  to  know  is  right 
at  your  fingertips! 

You  don't  have  to  be  a  programming  wizard  to 
use  Belals' Master  Index.  That's  because  BfVll  lists 
only  finished,  ready-to-run  programs  in  BASIC, 
the  easy-to-use  language  enjoyed  by  millions. 

Even  if  you're  a  master  programmer,  you'll 
appreciate  Belals'  Master  Index.  Why  slave  away 
hours,  days,  or  even  weeks  writing  a  program 
when  someone  else  has  probably  already  done  the 
work  for  you?  These  programs  are  working, 
documented,  and  ready-to-go. 


Programs  like:  Circuit  Design.  Psychoanalysis. 
PASCAL  Compiler.  Forrester's  World  Simulation. 
and  Color  T.V.  Tester.  Never  again  will  you  have 
trouble  answering  that  question,  "But  what  are 
home  computers  good  for?" 

Then  again,  there's  always  MONEY,  fvlaybe  you 
haven't  thought  of  all  the  ways  your  "fun"  com- 
puter could  turn  out  a  little  of  the  green  stuff  for 
you.  Maybe  you  haven't— but  a  lot  ot  other  people 
have,  and  they've  written  up  their  ideas  lor  you  to 
use.  fle/a/s'/Was/ef/f)tfex  lists  dozens  of  programs 
that  you  can  use  to  set  up  your  own  business. 

If  you  already  have  a  business,  Belals' Master 
Index  has  the  programs  lo  turn  your  home  com- 
puter into  a  full-fledged  business  system.  General 
ledger,  billing,  payroll,  mailing  lists,  word  pro- 
cessing—no matter  what  type  of  business  you 
have,  Belais'  Master  Index  has  the  programs  you 
need. 

All  this  and  save  $4.00,  too!  The  west  coast 
paper  mill  strike  has  delayed  publication  oi  Belais' 
Master  Index.  Because  of  this,  we're  making  a 
special  pre-publication  offer.  Reserve  your  copy 
now  and  you  can  have  it  (or  just  S5.95— S4  off  the 
S9.95  cover  price,  But  don't  wait:  when  our  presses 
start  rolling  again  IT  WILL  BE  TOO  LATE! 

To  order,  write  the  words  "Belais'  Master  Index" 
on  a  check.  Be  sure  your  name  and  address  are 
printed  on  the  check.  Make  out  the  check  for  S5.95 
plus  SI  shipping  (Calif,  residents  add  SBC  sales 
tax).  Send  your  order  to  Falcon  Publishing,  Oept. 
D-1, 140  Riverside  Ave..  P.O.  Box  688,  Ben  Lomond, 
CA  95005. 

If  you  want  to  use  your  VISA  or  Master  Charge 
card,  write  "Belais'  Master  Index"  on  a  piece  ol 
paper.  Give  the  total  for  your  order,  your  account 
number,  expiration  date,  and  signature. 

We  absolutely  guarantee  you'll  love  your  copy 
of  Belais'  Master  Index.  If  you're  not  completely 
satisfied,  return  it  to  us  and  we'll  refund  every  cent 
you  paid.  You  can't  lose,  so  order  NOW! 


Returning  to  the  LISP  theme  of  our  current  issue,  Visi- 
Calc  is  an  example  of  a  tree-oriented  parallel  data  struc- 
turing problem  for  which  LISP  is  a  most  appropriate  lan- 
guage of  expression.  Due  to  a  lack  of  availability  of  LISP 
as  a  software  development  tool  for  personal  computing 
hardware,  its  authors  did  not  use  LISP.  They  also  had  to 
make  a  number  of  compromises  and  tradeoffs  as  a  result 
of  the  small  size  (eg:  16  K  to  48  K  bytes)  of  the  main 
memory  of  personal  computers.  But  they  did  use  many  of 
the  tree  concepts  of  artificial  intelligence  research.  This 
provides  us  with  the  ultimate  example  of  the  relevance  of 
LISP-like  languages  and  approaches  to  personal  com- 
puting: one  of  the  most  generally  useful  new  user  soft- 
ware tools  for  small  machines,  Visi-Calc,  tackles  just  the 
sort  of  problem  for  which  LISP  is  an  appropriate  tool  of 
expression. 


Notes  on  the 
Appearance  of 
BYTE... 

by  Carl  Helmers 


Readers  will  notice  a  number  of  changes  in  the  ap- 
pearance of  the  design  layout  of  BYTE,  starting  with  this 
issue.  These  changes  are  the  cumulative  result  of  several 
trends  in  our  organization. 

Perhaps  the  biggest  such  trend,  from  our  readers'  point 
of  view,  is  the  arrival  of  a  form  of  computerized  typeset- 
ting for  BYTE  magazine.  I  have  often  felt  during  the  four 
years  since  BYTE  started  that  we  have  been  like  the  pro- 
verbial shoemaker's  children  who  went  barefoot.  We 
have  been  producing  a  computer  magazine  without  the 
benefit  of  any  computer  technology  in  the  actual  opera- 
tion of  our  business.  My  own  personal  recovery  from  this 
situation  occurred  last  fall  when  I  began  using  a  machine 
capable  of  running  UCSD  Pascal  for  all  of  my  program- 
ming and  writing.  At  about  the  same  time,  we  were  able 
to  specify  and  order  a  computerized  system  of  typesetting 
and  page  layout  produced  by  Compugraphic.  With  this 
August  1979  issue,  approximately  80%  of  the  copy  for 
the  magazine  was  produced  using  the  Compugraphic 
system.  (Of  course  this  measure  is  exclusive  of  adver- 
tisements which  are  generally  prepared  in  final  form  by 
advertising  agencies.) 

The  new  magazine  layout  beginning  in  this  issue  was 
designed  by  Ellen  Bingham  and  Nancy  Estle  of  our  pro- 
duction department.  One  of  its  major  features  is  the  use 
of  symmetrical  page  layouts  employing  2,  3,  and  4  col- 
umn widths  on  a  page,  depending  upon  the  demands  of 
subject  matter  and  placement  in  the  magazine.  In  the  old 
layout,  an  asymmetrical  two  and  a  half  column  format 
wasted  a  lot  of  blank  space.  It  also  greatly  complicated 
the  production  department's  magazine  layout  design  task 


158        August  1979  ©  BYTE  Publications  Inc 


Circle  133  on  inquiry  card. 


each  month.  Since  article  pages  in  the  old  format  were 
committed  to  either  a  right  or  left-hand  side  of  an  open 
magazine,  the  relative  placement  of  pages  became  quite 
involved,  sometimes  even  requiring  last  minute  modifica- 
tion of  "final  pasted"  pages  to  switch  them  from  left  to 
right-hand  asymmetry! 

The  new  format,  aside  from  freeing  up  placement  in 
the  magazine,  also  allows  more  information  to  be  placed 
on  each  page.  It  simplifies  the  problem  of  embedded 
equations  or  examples  since  the  column  width  is  greater 
in  the  two  or  three  columns  used  for  articles.  When  an  ar- 
ticle includes  many  long  examples  and  equations,  these 
will  often  fit  on  one  line  in  the  two  column  format,  mak- 
ing the  result  easier  to  read.  When  an  article  does  not 
have  a  large  proportion  of  such  embedded  illustrations, 
the  three  column  variant  is  available  for  use  by  our 
designers. 

One  question  that  we  are  frequently  asked  is  related  to 
magazine  layout:  Why  do  certain  articles  get  split  into 
sections,  with  portions  of  text  continued  at  the  back  of 
the  magazine?  One  reason  for  this  is  the  use  of  color  in 
the  magazine.  Approximately  half  of  each  issue  is  printed 
in  color.  Color  pages  are  printed  in  groups  of  sixteen, 
called  forms.  It  is  sometimes  necessary  to  begin  two  color 
articles  in  the  same  form,  continuing  one  of  the  articles  in 
another  location  in  the  issue.  The  relative  length  of  ar- 
ticles also  plays  a  part  in  how  they  are  laid  out  in  the 
magazine.  We  make  every  effort  to  keep  each  article  in 
one  contiguous  piece  whenever  possible. 

Speaking  of  computers  for  magazine  production,  we 
hope  eventually  to  be  able  to  accept  articles  from  authors 
on  floppy  disks,  using  either  the  CP/M  or  Pascal  format 
on  full-size  floppy  disks.  This  means  8  inch  single  or  dou- 
ble density,  IBM  compatible;  for  nonstandard  informa- 
tion formats,  documentation  sufficient  for  conversion 
would  have  to  be  included.  We  will  report  on  this  subject 
as  matters  progress. 

Changing  the  format  of  a  magazine  requires  months  of 
preparation  and  hard  work.  We  want  to  reassure  our 
readers  that  we  plan  to  keep  the  content  of  BYTE  just  as  it 
is.  The  new  typeface,  new  column  layouts,  and  updated 
feature  pages  are  designed  with  you  in  mind.  We  would 
appreciate  your  comments  and  suggestions. 


Coming  Up  in  BYTE... 


With  next  month's  September  issue  of  BYTE,  we  begin 
our  fifth  year  of  publication.  Returning  to  the  genesis  of 
personal  computers  in  the  hands  of  inveterate  hackers, 
the  theme  of  that  issue  is  "homebrewing."  In  future  issues 
we  will  see  such  special  interest  theme  topics  as  education 
and  computers,  "domesticated  computers,"  music,  data 
bases,  and  a  special  theme  on  computer  games  of  the 
Adventure/Dungeons  and  Dragons  variety.  Other  topics 
we  are  contemplating  for  the  coming  year  include  con- 
tinued attention  to  themes  of  voice  input  and  output, 
graphics,  languages,  artificial  intelligence  and 
robotics.. .CH 


ANNOUNCING 


New 
from  DEC 

LA34  DECwriter  IV 

^1,1 99."° 


1 10  or  300  baud,  RS  232C  serial    •  Upper/lower  case,  9  x  7  dot  matrix 

ASCII  .  1 0,  1 2, 1 3.2, 1 6.5  characters  /inch 

Friction  feed,  paper  width  to  15"    •  2,  3,  4,  6,  8,  or  12  lines/inch 

•  22"Wx7"Hx15y2"D,  25  lbs. 


New 
from  DIABLO 

DIABL0 1640    $2,690.00 
Receive-only    $2,331.°° 

High-quality  daisywheel  printing  at 
45  cps. 

DIABLO  1650  $2,779.00 
Receive-only    $2,419.00 

Metal  daisywheel  printing  at  40  cps. 

S0R0CIQ120    $795.00 

•  RS  232C,  upper/lower  case  full 
ASCII 

•  Numeric  keypad,  protected  fields 

•  Cursor   keys   plus  addressable 
cursor 

•  Auxiliary    extension    port 


Teletype  43     $999.00 

•  RS  232C,  110  or  300  baud 

•  Upper/lower  case  full  ASCII 

•  Pin  feed,  12"  x  S'A"  paper 


T.I.  810  printer  $1,695.00 

•  150  characters  per  second 

•  RS  232C  serial  interface 

•  Adjustable  forms  tractor 

•  Upper/lower  case  option  $90.00 


soRociguo  $1,250.00 

•  RS  232C  and  20mA  current  loop 

•  Extensive  editing  features 

•  25th  line  terminal  status  display 

•  16  function  keys  (32  with  shift) 


To  Order:  Send  certified  check  (personal  or  company  checks  require 
two  weeks  to  clear)  including  handling*  and  6%  sales  tax  if  delivered 
within  California. 

'Handling:  Less  than  $2,000,  add  2%;  over  $2,000,  add  1%.  Everything 
shipped  freight  collect  in  factory  cartons  with  manufacturer's  warranty. 


i:^JCHa^flii..i 


MICROMAIL  •  BOX  3297  •  SANTA  ANA.  CA  92703 
(714)  731-4338 


Circle  223  on   inquiry  card.  August  1979  ©  byte  Publications  Inc        159 


BITS 


Books  to  erase  the  impossiblo 

LfiNGUnG€ 


^e)J\ 


LET'STALKLISP 
by  Laurent  Siklossy 

D  This  is  a  discussion  of  LISP,  the  most  important  non-numeric 
language  in  use  today.  All  features  of  the  language,  including 
elementary  functions,  recursive  functions,  the  PROG  feature, 
MAP  functions,  generators,  property  lists,  and  the  "cell  value" 
concept,  are  carefully  explained  while  avoiding  the  details  of 
any  particular  LISP  implementation.  For  experienced  program- 
mers a  quickie  introduction  to  LISP  is  included.  Good  pro- 
gramming is  emphasized  throughout  and  a  full  complement  of 
exercises  help  to  illuminate  the  material.  If  Al  is  your  direction, 
LISP  is  your  language. 

235  pp     $16.95 


^e^' 


QUICKTRAN 
by  C.  Kevin  McCabe 

D  Learning  a  language  can  be  made  easier  if  one  begins  by 
mastering  a  small  part  of  the  language  and  then  adds  the  re- 
maining features  as  needed.  Kevin  McCabe  has  taken  this 
approach  in  teaching  standard  FORTRAN  IV.  He  starts  with 
the  basic  concepts  of  computing  and  Quicktran,  a  fundamental 
subset  of  FORTRAN  IV  that  allows  the  student  early  program- 
ming experience.  Part  II  expands  the  readers'  proficiency  and 
adds  other  features  of  the  language  and  by  the  end  of  Part  III 
all  of  standard  FORTRAN  IV  has  been  covered.  Example 
programs  abound. 

220  pp.  $8.95 


i^eui^- 


ffl[p[L 


A  PRACTICAL  INTRODUCTION  TO  PASCAL 
by  I.R.  Wilson  and  A.IVI.  Addyman 

D  PASCAL  will  soon  supercede  BASIC,  and  for  good  reason.  It 
is  a  simple  and  efficient  language,  encouraging  structured 
programming.  Wilson  and  Addyman  have  written  an  intro- 
duction to  PASCAL  suitable  for  first  time  or  experienced  pro- 
grammers. Describing  PASCAL  using  syntax  diagrams,  the 
book  encourages  the  stepwise  refinement  technique  of  struc- 
tured programming.  Over  60  programs  are  included  as  ex- 
amples, and  seven  of  Its  14  chapters  are  devoted  to  data  struc- 
tures. This  book  comes  highly  recommended  and  complements 
PASCAL-User  Manual  and  Report  by  Jensen  and  Wirth. 

148  pp.      $7.90 

PASCAL  USER  IVIANUAL  AND  REPORT 

(Second  Edition) 

by  K  Jensen  and  N  Wirth 

167  pp.  $7.90 


STRUCTURED  PROGRAMIVIING  IN  APL 
by  Dennis  Geller  and  David  Freedman 

n  APL  is  a  rich  computer  language.  Most  books  on  APL 
concentrate  on  its  powerful  operators  and  their  use,  leaving 
program  design  and  structure  to  be  learned  elsewhere.  This 
book  by  Dennis  P.  Geller  and  David  P.  Freedman  takes  a  better 
approach,  presenting  APD  with  the  structure  and  programming 
techniques  you  need  to  program  successfully  in  APL.  From  the 
preface:  "Overall,  our  approach  is  to  present  the  fundamentals 
of  programming  in  APL.  Students  may  go  on  from  here  to  learn 
to  write  faster  programs,  or  more  compact  programs,  or  more 
aesthetic  programs:  this,  we  hope,  is  where  they  will  learn  to 
write  working  programs." 


[^©ffiTTffiffl 


LNj 


COMPUTING  WITH  FORTRAN  IV:  A  PRACTICAL  COURSE 
by  Donald  M.  Monro 

D  A  book  for  those  who  have  had  some  programming  ex 
perience,  expecially  BASIC,  and  who  want  to  learn  FORTRAN 
programming.  Monro  claims  that  most  experienced  program- 
mers are  self-taught.  In  his  book  you'll  find  yourself  program- 
ming immediately  and  learning  through  experience.  Designed 
as  a  learning  aid,  the  book  carefully  relates  all  of  the  components 
of  standard  FORTRAN  IV  plus  some  essential  nonstandard 
features.  Throughout  the  book  all  subjects  taught  are  compared 
with  their  BASIC  counterparts.  This  book  will  have  you  learning 
FORTRAN  first  hand,  making  it  interesting  and  challenging. 

242  pp.  $16.95 

A  FORTRAN  COLORING  BOOK 
by  Roger  E.  Kaufman 

D  Who  says  learning  FORTRAN  isn't  fun?  Inside  this  book  are 
the  repetitive  doloop  bird,  your  mommy's  bureau  drawers, 
and  a  flowchart  for  making  a  rug  from  bellybottom  lint!  You'll 
also  find  everything  you  need  to  know  about  programming  in 
FORTRAN,  in  a  very  clever  instructional  style.  Learn  FORTRAN 
programming  painlessly. 

285  pp.  $6.95 

160       BYTE  August  1979 


324  pp.   $10.95 

APL  — AN  INTRODUCTION      M^\\3  ^• 
by  Howard  A.  Peelle  •** 

D  This  is  APL  for  the  self-taught  programmer  or  experimenter. 
Nine  U-Program  chapters  present  the  APL  functions  and  ex- 
pressions through  examples  followed  by  exercises  designed  to 
assure  comprehension.  Answers  to  all  problems  are  included 
and  access  to  a  computer  is  not  required.  This  method  of  learn- 
ing APL  won  't  put  you  to  sleep! 

242  pp.  $8.50 


ALGORITHMS  &  DATA  STRUCTURES  =  PROGRAMS 
by  Niklaus  Wirth 

D  "Programs,  after  all,  are  concrete  formulations  of  abstract 
algorithms  based  on  particular  representations  and  structures 
of  data" .  Niklaus  Wirth  here  presents  the  fundamental  concepts 
of  algorithms  and  data  structures  and  their  interdependence.  In 
his  lucid  treatment  he  covers  fundamental  data  structures, 
sorting,  recursive  algorithms,  dynamic  information  structures, 
language  structures  and  compilers,  using  PASCAL  in  the 
examples  and  exercises.  An  important  text. 

366  pp.  Hardcover     $19.95 


Working  in  assembly  languages? 
Good    programming    deserves    good 
Protect  your  efforts  using 


documentation. 


,TM 


The  Bits  Programmer  Pad 

See  ad  on  page    117 


L€nRNING 


6502  APPLICATIONS  BOOK 
by  Rodnay  Zaks 

n  6502  microcomputer  board  users,  here's  your  book!  It  is  the  key  to  putting  your 
KIM,  Sym,  or  Aim65  to  work.  The  6500  family  I/O  chips  are  covered  in  depth  (6520, 
6522,  6532,  and  6530)  along  with  the  interface  techniques  needed  to  use  them.  Ap- 
plications examples  include  displays,  computer  music,  alarms,  and  A/D  conversion. 
Standard  peripheral  interfacing  is  explained.  The  appendices  contain  applications 
programs  and  a  6502  assembler  in  BASIC.  The  only  prerequisite  is  some  familiarity 
with  6502  assembly  language  programming.  This  is  the  definitive  6502  "input/output" 
book.  Get  it! 

284  pp.     $12.95 

PROGRAMMING  THE  6502 
by  Rodnay  Zaks 

D  Here  is  the  6502  microprocessor  from  top  to  bottom:  basic  concepts,  hardware  or- 
ganization, basic  programming  techniques,  the  6502  instruction  set,  addressing  tech- 
niques, input-output  techniques,  data  structures  and  program  development.  This  book 
is  a  systematic  course  in  6502  assembly  language  programming,  including  excercises 
and  application  examples.  Solid  for  you  KIM  and  Apple  users! 

304  pp.     $10.95 


^&^^ 


LIVING 

FUNDAMENTALS  OF  RECORDKEEPING  AND  FINANCE  FOR 

THE  SMALL  BUSINESS 

by  Robert  C.  Ragan,  CPA,  And  Jack  Zwick,  Ph.D. 

D  Once  you  have  your  organization  or  business  up  and  running, 
records  must  be  kept.  What  should  I  keep,  and  how  do  I  record 
them?  This  book  on  fundamentals  will  give  you  a  helpful  start. 
Section  one  deals  with  maintaining  records,  protecting  assets, 
and  providing  a  basis  for  planning.  Section  two  provides  a 
starting  point  for  owner-managers  who  want  to  sharpen  their 
financial  management  skills. 

196  pp.       Hardcover         $10.00 

UP  YOUR  OWN  ORGANIZATION! 
by  Donald  Dible 

D  A  great  handbook  on  how  to  start  and  finance  a  new  business 
or  get  an  existing  business  out  of  neutral  and  into  high  gear. 
Written  for  the  person  willing  to  work  hard  at  being  success- 
ful in  business,  it  is  intended  to  save  time,  money  and  possible 
heartache  by  eliminating  false  starts  and  "blind  alley"  ap- 
proches  where  appropriate.  All  drawn  from  the  author's 
extensive  experience  in  entrepreneurial  business.  This  is  the 
most  comprehensive  reference  we've  seen  on  the  subject.  For 
the  programmer-consultant  or  the  basement  homebrewer- 
turned-entrepreneur,  this  is  your  book.  It  is  recommended  in 
the  Bank  of  America  Small  Business  Reporter  and  Changing 
Times  magazines. 

372  pp.   Hardcover     $14.95 


3v3S^ 


^vvW®' 


RUNNING  WILD 

THE  NEXT  INDUSTRIAL  REVOLUTION 

by  Adam  Osborne 

D  Many  of  the  uses  to  which  computers  are  being  put  today 
could  cause  profound  problems  tomorrow.  In  industry,  govern- 
ment, medicine  and  commerce,  the  full  effects  of  computer 
technology  -  the  next  industrial  revolution  -  have  not  yet  been 
realized.  That  is  why  Running  Wild  has  been  written.  Dr. 
Adam  Osborne,  a  well-known  writer  and  consultant  in  the  world 
of  microelectronics,  has  written  this  book  for  the  layman.  Its 
purpose  is  to  confront  the  reader  with  what  is  going  on  today, 
and  what  will  certainly  be  happening  tomorrow. 

NEW  FROM  OSBORNE  AND  ASSOCIATES  $3.95 

WHAT  EVERYONE  SHOULD  KNOW  ABOUT  PATENTS,        . 
TRADEMARKS  AND  COPYRIGHTS  N\^V\j  * 

by  Donald  M.  DIble  »^ 

D  So  you've  written  a  program  that's  of  use  to  microcom- 
puterists  everywhere?  Got  a  circuit  the  world's  waiting  for.  The 
next  crucial  step  is  to  secure  rewards  for  your  ideas  and  work. 
This  book  is  a  distillation  of  the  latest  information  available 
covering  trademarks,  copyrights  and  patents.  Each  topic  is 
covered  in  a  simple  stand-alone  style  designed  to  communicate 
all  of  the  essential  points  with  a  minimum  of  legalistic  jargon. 
As  an  entrepreneur  you  should  be  familiar  with  your  rights  and 
responsibilities  under  these  laws. 

254pp.     Hardcover    $10.00 


BITS 


TM 


DIAL   YOUR    BANK    CARD    ORDERS    TOLL    FREE    800-258-5477 


inc 


Bool^s  to  erase  the  impossible 

25  Route  101  OJest,  PC  Box  428,  Peterborough,  NH  03458 


Name 


Adrire.s.s 

City 

State 

Zip 

[J    Check  enclosed 

n    Master  Charge 

n    VISA 

Card# 

Expire.1 

Signature 

QTY. 

TITLE 

PRICE 

TOTAL 

Doc-TAz-c  o   $ -75  for  each  book  domestic 
u  A  Kin,  ,M^    $■•  -00  for  each  book  foreign 

P&H 

"^^    (maximum  postal  charge  -  $3.00) 

Total 

(in  N.H.  dial  924-3355)  MON-FRI  9-5    Jgt 


181 089 


You  may  photocopy  this  page 


Dealer  inquiries  invited 

BYTE  August  1979         161 


A  Mathematician's  View 

of  LISP 


Vaughan  R  Pratt 

Assoc  Prof  of  Computer  Science 

and  Engineering 

MIT  Laboratory  for  Computer  Science 

545  Technology  Sq 

Cambridge  MA  02139 


All  higher  order  languages  offer  the  programmer 
mechanisms  for  simplifying  and  clarifying  programs. 
Viewed  from  the  distance  that  mathematicians  such  as 
myself  prefer,  away  from  the  distractions  of  detail,  LISP 
stands  out  as  the  first  language  to  pay  serious  attention  to 
the  following  issues: 

•  Mobility  of  data. 

•  Modularity  of  function. 

•  Declarative  programming. 

•  Metalinguistics  (the  ability  of  a  language  to  talk 
about  language). 

Since  the  development  of  LISP,  two  other  languages 
(APL  and,  to  a  lesser  extent,  SNOBOL)  have  joined  LISP 
in  dealing  with  at  least  some  of  these  issues.  As  such,  one 
would  assume  that  they  would  have  improved  on  LISP.  I 
believe  that  LISP  outclasses  these  languages  despite  its 
having  been  developed  earlier.  Other  languages,  such  as 
FORTRAN,  BASIC,  ALGOL,  PL/I,  and  Pascal  (or 
FBAPP  as  Professor  Alan  Perils  of  Yale  University  refers 
to  them  collectively)  are,  in  Perils'  opinion  and  mine,  not 
in  the  same  class  as  LISP  and  APL  with  respect  to  the 
issues  discussed  here.  (I  do  not  know  Professor  Perils' 
opinion  of  SNOBOL.) 

Mobility  of  Data 

In  a  computer,  data  flows  between  three  major  classes 
of  sites:  storage,  functions,  and  devices.  Storage  consists 
of  registers  and  main  memory  in  assembly  language,  and 
variables  (simple  and  subscripted)  in  higher  level 
languages.  Functions  (or  procedures,  or  subroutines)  are 
quite  alike  in  all  languages,  though  with  minor  technical 


About  the  Author: 

Vaughan  Pratt  joined  the  MIT  faculty  in  1972  in  the  Department  of 
Electrical  Engineering  and  Computer  Science  and  is  associated  with  the 
Laboratory  for  Computer  Science  and  Artificial  Intelligence 
Laboratory.  He  received  his  PhD  under  Donald  Knuth  at  Stanford 
University  (Shell  Sort  and  Sorting  Networks).  He  is  currently  the  head 
of  the  Theory  of  Computation  Section  at  the  Laboratory  for  Computer 
Science.  His  work  includes  natural  language,  algorithms,  program 
semantics,  and  verification.  His  hobbies  include  collecting,  repairing, 
and  playing  musical  instruments  and  building  robots. 


distinctions.  Typical  devices  are  printers,  keyboards, 
floppy  disks,  paper  tape  readers,  and  the  like. 

The  corresponding  mechanisms  available  to  the  pro- 
grammer for  expediting  this  flow  of  data  are  fetch  and 
store  instructions,  parameter  passing  and  value  returning 
constructs,  and  read  and  write  commands. 

A  mobile  datum  is  one  which  can  be  moved  from  one 
site  to  another  by  the  program  with  a  minimum  of  fuss. 
Here  are  two  tests  for  mobility  of  data: 

Width  test.  Must  the  data  be  moved  piecemeal?  For 
example,  on  your  microprocessor,  can  you  move  a  2  byte 
address  around  as  a  unit,  or  do  you  have  to  move  each 
byte  separately?  In  your  favorite  language,  can  you  read 
in  an  array  from  floppy  disk  or  paper  tape  using  one 
instruction,  or  must  you  write  a  loop  to  read  the  array 
elements  individually? 

Length  test.  Are  intermediate  sites  needed  to  get  data 
from  one  site  to  another?  For  example,  to  take  the 
logarithm  of  a  number  that  the  user  types  in  from  a 
keyboard,  do  you  have  to  store  the  number  in  a  variable 
first  and  then  take  its  logarithm,  or  can  you  just  say 
(LOG  (READ))  as  in  LISP? 

If  the  data  type  fails  either  test  it  is  not  fully  mobile. 
Note  that  if  it  fails  both,  the  effect  can  be  multiplicative. 
For  instance,  moving  three  bytes  with  each  requiring  two 
steps,  requires  six  steps  altogether. 

It  is  often  possible  to  enhance  the  mobility  of  data  by 
writing  the  appropriate  subroutines.  For  example  you 
might  write  a  routine  to  read  an  array  from  a  device.  This 
observation  shows  that  mobility  is  a  concept  that  is 
relative  both  to  the  available  programming  language  con- 
structs and  to  the  available  software. 

Promised  mobility  is  the  possibility  of  writing  such 
subroutines.  Promised  mobility  is  not  as  good  as  real 
mobility,  as  it  requires  the  programmer  to  do  the  work  of 
supplying  the  mobility,  which  may  be  more  effort  than  it 
is  worth  for  the  particular  application  the  programmer 
has  in  mind. 

One  basis  for  classifying  programming  languages  is  the 
mobility  of  their  data  types  in  the  absence  of  additional 
subroutines  such  as  the  above  mentioned  one  for  reading 


162       August  1979  ©  BYTE  Publications  Inc 


RADIO  SHACK  COMPUTER  OWNERS 


TRS80 


MONTHLY 
NEWSLETTER 


/ 


^ 


PRACTICAL  APPLICATIONS 
BUSINESS 

GAMBLING  •  GAMES 
EDUCATION 
PERSONAL  FINANCE 
BEGINNER'S  CORNER 
NEW  PRODUCTS 
SOFTWARE  EXCHANGE 
MARKET  PLACE 
QUESTIONS  AND  ANSWERS 
PROGRAM  PRINTOUTS 
AND  MORE 

WORD  PROCESSING  PROGRAM  (Cassette  or  Disk) 

For  Writing  Letters,  Text,  Mailing  Lists,  Files,  Etc. 
With  Each  New  Subscriptions  Or  Renewal 


Send  for  FREE  Software  Catalogue  (Including  listings  of  hundreds  of 
TRS-80  programs  available  on  cassette  and  diskette). 


iCQUIRJTHQWlCS" 


M&T>^KVcncAL  AW^-Ctfnorse  S€f^v/ce~ 


Box  149  New  City,  New  York  10956 

ONE  YEAR  SUBSCRIPTION  $24  _ 
TWO  YEAR  SUBSCRIPTION  $48  _ 
SAMPLE  OF  LATEST  ISSUE  $4 


HOUR 
94    ORDER 
^^       LINE 
(914)  425-1535 


.^ 


START  MY  SUBSCRIPTION  WITH  ISSUE_ 
(#1  -  July  1978  •  #7  -  January  1979) 


NEW  SUBSCRIPTION 


.  RENEWAL . 


CREDIT  CARD  NUMBER 

SIGNATURE 

NAME  


EXP.  DATE- 


ADDRESS 


Circle  159  on  inquiry  card. 


BYTE  August  1979         163 


in  arrays.  In  the  machine  language  of  a  microcomputer, 
only  bytes  (and  sometimes  words)  are  mobile,  and  even 
then  generally  not  for  I/O  (input/output).  Only  numbers 
and  Booleans,  and  sometimes  strings,  are  truly  mobile  in 
BASIC,  FORTRAN,  and  ALGOL. 

The  major  languages  developed  in  the  1950s  and  1960s 
whose  structured  data  types  are  mobile  are  (in  order  of 
development)  LISP,  APL,  and  SNOBOL,  the  respective 
types  being  lists,  arrays,  and  strings.  LISP  and  APL  also 
have  mobile  strings.  In  LISP,  atoms  serve  as  strings.  In 
APL,  a  vector  of  characters  is  printed  without  spaces  be- 
tween its  characters  and  so  can  play  the  role  of  a  string. 
LISP  and  SNOBOL  have  arrays  that  are  not  nearly  as 
mobile  as  APL's  arrays,  though  some  implementations  of 
LISP  come  close,  namely  to  within  the  ability  to  read  and 
write  them  from  and  to  devices. 

Lists  are  preferable  to  arrays  as  a  general-purpose  data 
type  since  anything  that  an  array  can  represent  can  be 
conveniently  represented  by  a  list,  whereas  the  converse 
is  far  from  true.  You  can't  have  arrays  of  differently 
shaped  arrays  in  APL,  for  example:  LISP,  however,  per- 
mits any  data  type  to  be  a  list  element.  In  this  respect, 
APL  data  types  are  not  fully  mobile  with  respect  to  array 
elements  viewed  as  data  sites  (which  they  are). 

From  the  implementation  (and  hence  the  efficiency) 
viewpoint,  arrays  offer  faster  random  access.  However, 
the  modern  APL  style  of  programming  makes  relatively 
light  use  of  random  access.  (This  is  a  potential  source  of 
endless  and  quite  technical  debate  between  LISP  and  APL 
enthusiasts,  and  is  not  by  any  means  an  easy  issue  to 


WINCHESTER  DRIVE 
CONTROLLER 

The  XCOMP  DC/M  Controller  provides  the 
OEM  with  a  high  performance,  low  cost  in- 
terface to  the  Marksman®  drive.  An  eight  bit 
bus  permits  the  DC/M  to  be  used  with  all 
popular  microcomputers. 


H 


IM^BvM* 


XCOMP 

INCORPORATED 

9915-A  Businesspark  Ave.,  San  Diego,  CA  92131  •  (714)  271-8730 


dismiss.)  Moreover,  as  compiler  optimizers  get  pro- 
gressively "smarter,"  it  will  become  progressively  harder 
to  infer  properties  of  the  implementation  from  properties 
of  the  language  definition. 

For  example,  often  the  compiler  has  enough  informa- 
tion to  infer  that  a  LISP  list  is  being  used  array-style,  and 
it  can  then  choose  to  represent  the  list  as  an  array.  Con- 
versely it  may  spot  that  an  APL  array  would  best  be 
implemented  as  a  LISP-style  list  (eg:  when  much 
concatenation  of  APL  arrays  is  being  performed  and  no 
random  access  is  used). 

An  aspect  of  APL  not  shared  with  LISP  is  its  insistence 
on  homogeneous  arrays.  In  APL  you  can  have  arrays  of 
numbers,  or  arrays  of  characters,  but  not  arrays  of  a  mix- 
ture. An  advantage  of  this  is  that  you  don't  need  to  store 
type  information  for  every  array  element,  leading  to  effi- 
ciency gains.  A  disadvantage  is  that  it  restricts  the  pro- 
grammer's options  considerably.  LISP  programmers  take 
full  advantage  of  the  ability  to  mix  types  in  lists. 

LISP  and  APL  (and  to  an  extent  SNOBOL)  have 
mobile  expressions.  In  LISP  you  can  treat  the  expression 
(PLUS  X  (TIMES  Y  5))  as  an  ordinary  datum.  It  can  be 
bound,  that  is,  assigned  to  variables,  passed  as  an  argu- 
ment to  a  function,  returned  as  the  value  of  the  function, 
printed  out,  and  read  back  a  year  later,  still  meaning 
the  same  thing.  And,  of  course,  it  can  be  evaluated  by  ap- 
plying the  LISP  function  EVAL  to  it. 

The  mobility  of  an  expression  is  inherited  from  that  of 
its  representing  medium,  just  as  the  mobility  of  an  integer 
in  the  range  —128  to  127  is  inherited  from  that  of  the  8  bit 
byte  that  represents  it. 

With  some  restrictions,  the  same  is  true  of  APL.  The 
string  (ie:  character  vector)  'X-fYX5'  can  be  passed 
around  just  as  freely  in  APL,  and  of  course  it  can  be  exe- 
cuted by  applying  the  APL  function  Execute  to  it.  One 
restriction  is  that  Execute  cannot  handle  more  than  one 
line  at  a  time,  effectively  preventing  the  use  of  APL's  ver- 
sion of  Goto  in  conjunction  with  Execute.  Another 
restriction  is  that  there  is  no  APL  expression  whose  exe- 
cution results  in  an  APL  function  becoming  defined;  in- 
stead one  uses  a  separate  function,  DFX.  LISP  observes 
neither  of  these  restrictions. 

LISP  goes  beyond  APL  by  also  having  mobile  func- 
tions. From  a  programmer's  viewpoint  the  main  differ- 
ence between  an  expression  and  a  function  is  that  func- 
tions are  objects  that  explicitly  take  arguments,  whereas 
the  only  way  to  pass  information  to  an  expression  is  to 
store  it  in  some  variables  before  evaluating  the  expres- 
sion. 

LISP  implements  mobile  functions  by  using  lambda  ex- 
pressions, a  method  of  representing  functions  due  to  the 
logician  Alonzo  Church.  For  example,  the  function  that 
computes  the  length  of  a  two-dimensional  vector  whose 
coordinates  are  X  and  Y  could  be  represented  with  the 
list: 

(LAMBDA  (X  Y)  (SQRT  (PLUS  (TIMES  X  X) 

(TIMES  Y  Y)))) 

Such  an  object  can  be  read,  printed,  assigned  to 
variables,  passed  as  an  argument  to  another  function, 
returned  as  the  result  of  a  function,  and  of  course  applied 
to  a  pair  of  arguments.  To  take  an  unusual  example,  run- 


164        August  1979  ©  BYTE  Publications  Inc 


Circle  394  on  inquiry  card. 


5  reasons  why  you  should  not  buy 

the  electric  pencil  II " 

^       "    1978  Michael    Shrayer 
Check  the  appropriate  box{es) : 
You  love  typing  the  same  copy  20  thousand  times  a  day. 

□  Your  secretary  can  type  250  words  per  minute. 

□  You're  dying  to  spend  $15,000  on  a  word  processing  system,  just  for  the 
tax  investment  credit. 

m  All  your  capital  assets  are  tied  up  in  a  10-year  supply  of  correction  fluid. 

□  You  never  commit  a  single  thought  to  paper. 

If  you  have  checked  one  or  more  boxes,  you  do  not  need  The  Electric  Pencil. 
On  the  other  hand,  you  may  want  to  join  the  thousands  of  people  who  haven't 
checked  a  single  box. 


The  Electric  Pencil  II  is  a  Charac- 
ter Oriented  Word  Processing  System. 
This  means  that  text  is  entered  as  a 
string  of  continuous  characters  and  is 
manipulated  as  such.  This  allows  the 
user  enormous  freedom  and  ease  in  the 
movement  and  handling  of  text.  Since 
line  endings  are  never  delineated,  any 
number  of  characters,  words,  lines  or 
paragraphs  may  be  inserted  or  deleted 
anywhere  in  the  text.  The  entirety  of 
the  text  shifts  and  opens  up  or  closes 
as  needed  in  full  view  of  the  user.  The 
typing  of  carriage  returns  or  word 
hyphenations  is  not  required  since 
lines  of  text  are  formatted  automatic- 
ally. 

As  text  is  typed  and  the  end  of  a 
line  is  reached,  a  partially  completed 
word  is  shifted  to  the  beginning  of  the 
following  line.  Whenever  text  is  insert- 
ed or  deleted,  existing  text  is  pushed 
down  or  pulled  up  in  a  wrap  around 
fashion.  Everything  appears  on  the 
video  display  as  it  occurs,  which  elim- 
inates guesswork.  Text  may  be  review- 
ed at  will  by  variable  speed  scrolling 
both  in  the  forward  and  reverse  direc- 
tions. By  using  the  search  or  search 
and  replace  functions,  any  string  of 
characters  may  be  located  and/or  re- 
placed with  any  other  string  of  charac- 
ters as  desired. 

Numerous  combinations  of     

line  length,  page  length,  line 
spacing  and  page  spacing  permit 
automatic  formatting  of  any 
form.  Character  spacing,  bold 
face,  multicolumn  and  bidirec- 
tional printing  are  included  in 
the  Diablo  versions.  Multiple 
columns  with  right  and  left  justified 
margins  may  be  printed  in  a  single  pass. 

IVide  screen  video 

Versions  are  available  for  Imsai 
VIO  video  users  with  the  huge  80x24 
character  screen.  These  versions  put  al- 
most twice  as  many  characters  on  the 


GP/M  versions 

Digital  Research's  CP/M,  as  well  as 
its  derivatives,  including  IMDOS  and 
CDOS,  and  Helios  PTDOS  versions  are 
also  available.  There  are  several  NEC 
Spinwriter  print  packages.  A  utility 
program  that  converts  The  Electric 
Pencil  to  CP/M  to  Pencil  files,  called 
CONVERT,  is  only  $35.     . 

Features 

•  CP/M,  IMDOSand  HELIOS  compatible 

•  Supports  four  disk  drives 

•  Dynamic  print  formatting 

•  DIABLO  and  NEC  printer  packages 

•  Multi-column  formatting  in  one  pass 

•  Print  value  chaining 

•  Page-at-a-time  scrolling 

•  Bidirectional  multispeed  scrolling  con- 
trols 

•  Subsystem  with  print  value  scoreboard 

•  Automatic  word  and  record  number 
tally 

•  Cassette  backup  for  additional  storage 

•  Full  margin  control 

•  End-of-page  control 

•  Non-printing  text  commenting 

•  Line  and  paragraph  indentation 

•  Centering 

•  Underlining 

•  Bold  face 

Upgrading  policy 

Any  version  of  The  Electric  Pencil 


Have  ive  got  a  version 
for  you? 

The  Electric  Pencil  II  operates 
with  any  8080/Z80  based  microcom- 
puter that  supports  a  CP/M  disk  sys- 
tem and  uses  an  Imsai  VIO,  Processor 
Tech.  VDM-1,  Polymorphb  VTI,  Solid 
State  Music  VB-1B  or  Vector  Graphic 
video  interface.  REX  versions  also 
available.  Specify  when  using  CP/M 
that  has  been  modified  for  Micropolis 
or  North  Star  disk  systems  as  follows: 
for  North  star  add  suffix  A  to  version 
number;  for  Micropolis  add  suffix  B, 
e.g.,SS-IIA,  DV-IIB. 


Vers. 

Video 

Printer 

Price 

SS-II 

SOL 

TTY  or  similar 

$225 

SP-II 

VTI 

TTY  or  similar 

225 

SV-II 

VDM 

TTY  or  similar 

225 

SR-II 

REX 

TTY  or  similar 

250 

Sl-ll 

VIO 

TTY  or  similar 

250 

DS-ll 

SOL 

Diablo  1610/20 

275 

DP-II 

VTI 

Diablo  1610/20 

275 

DV-II 

VDM 

Diablo  1610/20 

275 

DR-II 

REX 

Diablo  1610/20 

300 

Dill 

VIO 

Diablo  1610/20 

300 

NS-ll 

SOL 

NEC  Spinwriter 

275 

NP--11 

VTI 

NEC  Spinwriter 

275 

NV-ll 

VDM 

NEC  Spinwriter 

275 

NR-II 

REX 

NEC  Spinwriter 

300 

NI-11 

VIO 

NEC  Spinwriter 

300 

SSH 

SOL 

Helios/TTY 

250 

DSH 

SOL 

Helios/Diablo 

300 

MICHAEL  SHRAYER  SOFTWARE,  INC 

1253  Vista  Superba  Drive 

Glendale,CA.  91205 

(213)956-1593 


may  be  upgraded  at  any  time  by  sim- 
ply returning  the  original  disk  or  cas- 
sette and  the  price  difference  between 
versions,  plus  $15  to  Michael  Shrayer 
Software.  Only  the  originally  purchas- 
ed cassette  or  diskette  will  be  accepted 
for  upgrading  under  this  policy. 


Attention:  TRS'80  Users! 

The  Electric  Pencil  has  been  de- 
signed to  work  with  both  Level  I 
(16K  system)  and  Level  II  mod- 
els of  the  TRS-80,  and  with  vir- 
tually any  printer  you  choose. 
Two  versions,  one  for  use  with 
cassette,  and  one  for  use  with 
disk,  are  available  on  cassette. 
The  TRS-80  disk  version  is  easily  tran- 
sferred to  disk  and  is  fully  interactive 
with  the  READ,  WRITE,  DIR,  and 
KILL  routines  of  TRSDOS  2.1. 
Version  Storage         Price 

TRC        Cassette       $100. 
TRD        Disk  $150. 


illl 


Demand  a  demo  from  your  dealer ! 


Circle  319  on  inquiry  card. 


BYTE  Augusl  1979         165 


Up  Your 
Output. 


TEMPOS 


MULTI-TASKING! 

The  TEMPOS  Operating  System  is  quickly  becoming  the  standard  in  Multi- 
User,  Multi-Tasking  operating  systems  for  8080  and  Z80  microcomputers. 
Multi-Tasking  means  that,  even  with  only  one  user  at  one  terminal,  more 
than  one  job  can  be  running  on  the  system  simu/faneous/y.'  If  you  have  ever 
had  to  go  get  a  cup  of  coffee  while  you  wait  lor  your  computer  to  print  list- 
ings, you  know  the  advantages  of  a  system  that  will  handle  one  job  while 
you  are  working  on  another.  TEMPOS  is  a  true  time  sharing  system,  and 
the  maximum  number  of  jobs  is  limited  only  by  your  memory. 

MULTI-USER! 

Want  to  share  your  computer  with  another  user?  With  TEMPOS  all  it  takes 
is  another  terminal ...  up  to  seven  interactive  terminals  are  allowed!  And 
with  Re-Entrant  programs,  each  user  does  not  need  a  complete  copy  in 
memory.  We  include  three  Re-Entrant  programs  { the  OPUS/THREE  High- 
Level  Language,  the  TEXTED  Text  Editor,  and  FILES,  a  disc  file 
directory/manipulator)  or  write  your  own!  In  addition,  we  include  an 
assembler,  a  linking  loader,  over  a  half-dozen  other  utility  programs  and 
over  60  system  subroutines,  callable  by  the  programmer! 

PROVEN! 

With  TEMPOS,  you  get  a  package  that  has  been  tested  in  our  facilities  for 
over  two  years,  and  in  the  field  at  over  50  different  installations.  We  have 
used  this  system  ourselves  for  everything  from  writing  high-level  languages 
to  developing  applications  to  text  editing  to  games.  TEMPOS  is  undoubted- 
ly the  most  flexible  software  tool  on  the  market .  .  .  and  you  can  have  it  for 
much  less  than  you  think! 

COMPATIBLE! 

TEMPOS  is  available  for  many  different  systems;  pre-written  drivers  may 
include  yours.  Or,  using  our  interactive  System  Generation  Routine,  you 
can  add  your  own.  Call  or  write  now  for  our  free  catalog  and  the  name  of  a 
dealer  near  you.  The  TEMPOS  Operating  System  is  available  for  $787.00, 
the  manual  set  (price  may  be  credited  toward  the  purchase  of  the  TEMPOS 
package)  for  $21.50  (prices  include  shipping  within  the  U.S.). 

ADMINISTRATIVE 
DDSYSTEMS 

nnniNC 

DD 

1642  S.  Parker  Road,  Suite  300,  Denver,  Colorado  80231 
(303)  755-9694 

166        August  1979  ©  BYTE  Publications  Inc  Cifcle  8  On  Inquiry  Card. 


ning  the  program  (APPLY  (READ)  (LIST  3  4))  would 
cause  the  function  typed  in  response  to  the  Read  to  be  ap- 
plied to  the  list  of  arguments  (3  4).  If  the  user  typed  in  the 
above  lambda  expression,  the  result  would  be  5. 

The  closest  APL  can  come  to  this  is  to  have  a  name  of  a 
function,  say  ZOT,  be  a  datum.  To  apply  the  function  so 
named  in  APL,  one  would  concatenate  the  name  with  the 
argument(s),  say  3,  then  Execute  the  resulting  program 
"ZOT  3".  The  catch  is  that  names  on  their  own  mean 
nothing:  the  technique  will  not  work  if  the  name  is  not 
defined,  or  if  somebody  changes  its  definition.  Thus 
if  you  print  the  name  of  an  APL  function  on  a  device 
from  which  you  want  to  read  it  back  in  later,  the  original 
definition  may  in  the  meantime  change  or  disappear  from 
the  workspace.  This  difficulty  does  not  arise  with  lambda 
expressions,  which  contain  their  own  definition.  Thus 
functions  have  at  best  limited  mobility  in  APL. 

The  notion  of  mobility,  perhaps  surprisingly,  is  not  a 
concept  that  many  people  are  familiar  with.  In  hindsight 
it  is  clear  that  mobility  was  a  concern,  whether  or  not  a 
subconscious  one,  for  the  designers  of  LISP,  APL  and 
SNOBOL.  The  late  Christopher  Strachey,  a  British  com- 
puter scientist,  made  the  distinction  between  "first  and 
second  class  citizens"  when  discussing  data,  the  former 
being  what  I  have  called  mobile  data.  The  first  published 
reference  to  the  concept  appears  to  have  been  made  in 
1968  by  another  British  computer  scientist,  Robin 
Popplestone,  in  a  description  of  the  virtues  of  his 
language  POP-2.  Popplestone  did  not  use  the  word 
"mobile"  either,  talking  instead  in  terms  of  a  "charter  of 
rights"  for  data. 


Modularity  of  Function 

Subroutine  libraries  have  something  that  programming 
languages  often  lack,  and  that  is  modularity  of  function. 
One  does  not  view  a  subroutine  library  as  a  monolith  but 
rather  as  a  loosely  coupled  set  of  subroutines.  The  term 
subset,  often  applied  in  a  vague  way  to  programming 
languages,  has  an  obvious  and  precise  meaning  for  sub- 
routine libraries. 

LISP  and  APL,  in  contrast,  are  each  just  like  a  sub- 
routine library,  being  little  more  than  a  set  of  functions. 
The  user  may  add  to  this  set  by  getting  more  functions 
from  whatever  subroutine  library  is  maintained  by  the 
local  environment.  And  the  user's  program  itself  consists 
of  a  set  of  functions.  Any  of  these  functions  can  be  invok- 
ed from  the  user's  terminal  or  from  the  user's  or  any  other 
program.  All  three  kinds  are  invoked  with  identical  syn- 
tax (within  each  language),  in  LISP: 

(Function  Argl  Arg2  . . . Argn) 
in  APL: 

op  X       for  unary  functions 
X  op  y    for  binary  functions,  assuming  right 
associativity 

The  conventions  for  representing  lists,  LISP's  primary 
structured  data  type,  are  the  same  for  representing  pro- 
grams. Since  those  conventions  are  simple,  there  is  little 
to  learn.  In  this  respect  LISP  differs  from  APL,  which  has 


a  convention  for  representing  the  structure  of  its  pro- 
grams (namely  the  invocation  of  the  right-associativity 
rule,  that  x  op  y  op  z  is  read  as  x  op  (y  op  z)  that  has  no 
analog  in  the  representation  of  APL  data. 

I  should  add  that  my  own  preference  in  programming 
in  LISP  is  to  use  an  ALGOL-like  language,  CGOL,  which 
is  then  automatically  translated  to  LISP.  Despite  the 
regular  and  easily  learned  syntax  of  LISP,  I  do  not  like 
having  to  write  x-|-y  as  (PLUS  X  Y).  I  do  too  much 
mathematics  to  feel  comfortable  switching  represen- 
tations in  order  to  program.  Fortunately  it  is  not 
necessary  to  compromise  functional  modularity  in  order 
to  use  other  syntactic  conventions.  If  I  were  an  APL  pro- 
grammer I  would  want  to  do  the  same  thing:  have  a  syn- 
tactic preprocessor  that  permitted  me  to  use  the  syntax  I 
felt  most  comfortable  with. 

Declarative  Programming 

Here  is  an  innocent  looking  pair  of  equations: 

(a-l-1)  Xb  =  aXb  +  b 
0  X  b  =  0 

What  sets  these  equations  apart  from  the  millions  of 
other  equations  I  could  have  written  is  that  these  permit 
me  to  convert  any  method  for  adding  into  a  method  for 
multiplying  nonnegative  integers.  Suppose,  for  example, 
I  want  to  multiply  3  by  7.  Since  3  =  2-1-1,  I  can  use  the 
equation  to  express  3X7  as  2X7-1-7,  reducing  the 
original  problem  to  a  smaller  one  which  can  be  solved  by 
the  same  method.  Eventually  I  have  (((0X7-l-7)-l-7)-t-7, 
which  the  second  equation  turns  into  ((0  +  7) -I- 7) -I- 7.  Us- 
ing the  method  for  adding,  three  times,  I  end  up  with  the 
desired  answer. 

Turning  these  equations  into  a  LISP  program  to  give  a 
recursive  definition  of  (TIMES  A  B)  is  an  essentially 
mechanical  procedure  yielding: 

(COND  ((ZEROP  A)  0) 

(T  (PLUS  (TIMES  (SUBl  A)  B)  B))) 

or  in  the  "syntactically  sugared"  version  of  LISP  referred 
to  earlier: 

if  a  =  0  then  0  else  (a-l)*b-l-b 

The  significance  of  this  example  lies  in  two  observa- 
tions: first,  the  facts  were  so  obvious  it  was  hard  to  make 
a  mistake;  and  secondly,  the  procedure  for  converting 
those  facts  into  something  we  could  run  as  a  program  was 
so  stereotyped  and  straightforward  (match  the  problem 
against  the  lefthand  side  of  an  equation,  replace  it  by  the 
corresponding  righthand  side)  that,  again,  it  was  hard  to 
make  a  mistake. 

Programming  in  LISP  comes  close  enough  to  this 
declarative  style  to  make  programming  a  remarkably 
error-free  process. To  those  who  can  read  LISP,  a  well- 
written  LISP  program  will  look  like  a  collection  of  facts. 
The  subtlety  of  the  program  then  amounts  to  the  subtlety 
of  the  facts.  If  the  facts  are  obvious,  as  with  the  above, 
there  is  little  to  explain.  If  the  facts  are  not  obvious,  then 
you  have  a  program  that  needs  to  be  proved  correct. 


mM 


Software 
Tools 


Have  you  thought 
about  text  editing  ? 

Our  ED-80  Text  Editor  offers  a  refreshing  new  approach  for  the 
creation  and  editing  of  program  and  data  files  conversationally  -  and  it 
saves  money!  Its  powerful  editing  capabilities  will  satisfy  the  most 
demanding  professional  -  yet  It  can  still  be  easily  used  by  the  inexper- 
ienced beginner. 

Look  at  these 
outstanding  features: 

■  By  far  the  best  text  editor  available  for  microcomputer- 
based  systems. 

■  Repays  its  initial  cost  many  times  over  with  its  unique 
time-saving  editing  capabilities. 

■  FULL  SCREEN  windows  displays  for  viewing  and  edit- 
ing data  a  page-at-a-time,  rather  than  line-by-line. 

■  Forward  and  backward  scrolling  in  the  FULL  SCREEN 
mode. 

■  Displays  the  results  of  every  edit  command. 

■  Commands  include  forward  or  backward  Locate  and 
Change,  Insert,  Delete,  Replace,  Inline,  Input,  Print, 
List,  Window,  Get,  Put,  Macro,  Tabset,  Append,  Case, 
Scale,  and  Dump. 

■  Simple  line-oriented  commands  with  character  string 
manipulation  capabilities. 

■  Text  may  be  located  by  string  value,  by  line  number, 
or  by  relative  line  number. 

■  Global  string  search  and  replace  capabilities. 

■  Commands  for  moving,  copying,  and  merging  edit  files 
on  the  same  or  different  diskettes. 

■  Self-explanatory  diagnostic  messages. 

■  Single  keystrokes  for  the  most  commonly  used  com- 
ands. 

■  Safeguards  to  prevent  catastrophic  user  errors  that 
result  in  loss  of  the  edit  file. 

■  Designed  for  today's  high  speed  CRT's,  video  monitors, 
and  teletypewriter  terminals. 

■  Thoroughly  field  tested  and  documented  with  a  User's 
Manual  of  over  60  pages. 

■  Compatible  with  existing  CP/M  edit  files  and  deriva- 
tive operating  systems. 

And  remember  -  in  today's  interactive  programming  environment  -  the 
programmer's  most  important  software  development  tool  is  the  text  editor. 
Our  ED-80  Text  Editor  is  working  in  industry,  government,  univer- 
sities, and  in  personal  computing  to  significantly  cut  program  develop- 
ment time  and  high  labor  costs.  Why  not  let  ED-80  begin  solving  your 
text  editing  problems  today? 


Mail  to:    SOFTWARE  DEVELOPMENT  t  TRAINING,  INC. 
P.O.  Box 4511,  Huntsville,  AL  35802 
ED-80  is  protected  by  copyrifht  and  furnithed  jndcr  a  paid-up  licenie 
lor  use  on  a  singie  computer  system. 
G   Please  send  additional  information. 

n    Send  Diskette,  User's  Manual,  and  paid-up  license  agreement $99.00 

Specify  SINGLE  DENSITY  Diskette  size D  5"  D  8" 

n   Send  User's  Manual  (credited  on  purcliase  of  a  paid-up  license) $10.00 

□    Ctieck  or  money  order  enclosed  for $ 

n    Please  charge  to  my  credit  card D  VISA  D  Master  Ctiarge 

Card  No Bank  No Exp.Date 

NAME 

ADDRESS 

CITY STATE ZIP 


SIGNATURE  . 


Cl 


SOFTWARE  DEVELOPMENT  &  TRAINING,  INC. 
Post  Office  Box  4511    Huntsville,  Alabama  35802 

Dealer  Inauiries  Welcomed 
®  CP/M  is  a  trademark  of  Digital  Research 

August  1979  ©  BYTE  Publications  Inc        167 


Table  1:  LISP  finds  applications  in  many  areas  dealing  with  language  processing. 


Area 

Compiling 

Algebraic  simplification 
Natural  language 
Automatic  theorem  proving 
Program  verification 
Automatic  programming 
Knowledge'based  systems 

Language 

Parsed  programs 

Algebraic  formulas 

Parsed  sentences 

Logical  formulas 

Parsed  programs  and  logical  formulas 

Specifications  and  resulting  programs 

Facts  and  rules 

Though  the  example  above  dealt  with  numbers,  the 
mobility  of  LISP's  structured  data  types  makes  it  possible 
to  apply  the  same  method  to  writing  programs  that 
operate  on  lists,  functions,  programs,  and  so  on. 

My  own  research  includes  developing  and  testing  new 
algorithms  for  a  variety  of  problems.  For  the  sake  of  ease 
of  implementation  and  short  debugging  time,  my  style  is, 
as  far  as  possible,  to  set  down  the  facts  relevant  to  the 
computation  and  express  them  as  LISP  functions.  Thanks 
to  the  quality  of  the  LISP  compiler  used  at  MIT,  I  can 
produce  reasonably  efficient  programs,  in  many  cases  as 
efficient  as  if  I  had  adopted  a  more  traditional  style  of 
programming  with  while  loops  and  assignments.  (One 
thing  I  miss,  however,  is  the  ability  to  just  write  down  the 
pure  equations  and  have  a  preprocessor  automatically 
combine  them  into  a  single  LISP  program.) 

My  prime  testing  program  referred  to  in  Martin  Gard- 
ner's "Mathematical  Games"  column  in  the  August  1978 
Scientific  American  is  written  entirely  in  this  style.  Some 
of  the  facts  it  uses  are  obvious  ones  concerning  such 
topics  as  exponentiation  modulo  n.  Some  of  the  facts 
however  are  considerably  deeper  and  were  first  proved 
by  the  well-known  computer  scientist  Michael  Rabin. 

Rewriting  this  particular  program  in  some  other  pro- 
gramming style  would  achieve  little,  if  anything,  in  the 
way  of  efficiency.  It  would,  however,  make  it  harder  to 
see  the  connection  between  the  collection  of  facts  suppor- 
ting the  method  and  the  program  itself.  Rewriting  the 
program  in  another  programming  language  while  preser- 
ving the  declarative  style  would  be  possible  provided 
recursion  was  permitted  and  numbers  were  mobile.  A 
problem  here  is  that  numbers  of  the  size  my  program 
works  with,  up  to  1000  decimal  digits,  are  not  merely 
immobile  in  most  languages,  they  do  not  even  exist.  The 
implementation  at  MIT  is  one  of  the  implementations 
which  takes  much  effort  to  protect  the  programmer  from 
frequent  painful  encounters  with  boundaries  by  not 
limiting  the  size  of  integers. 

This  principle  of  executing  facts  as  programs  has  en- 
couraged people  to  generalize  the  idea  to  other  facts 
besides  equations,  and  a  series  of  programming  languages 
have  evolved  based  on  this  generalization,  two  of  the 
more  prominent  ones  being  Planner  and  Prolog. 

Metalanguage 

Meta  is  Greek  for  about.  LISP  lists  can  be  used,  inter 
alia,  to  represent  expressions  in  various  languages.  Thus 
LISP  makes  an  ideal  metalanguage,  a  language  for  talking 
about  language.  As  such,  LISP  finds  applications  in  a 
large  variety  of  areas  dealing  with  the  processing  in  lan- 
guage, as  shown  in  table  1. 

In  all  of  these  areas,  the  expressions  of  the  language  in 
question  are  treated  as  structures  rather  than  as  strings. 


Structures  represent  the  level  of  language  processing 
where  the  real  action  takes  place.  Parsing  (eg:  converting 
strings  to  structures)  may  present  more  or  less  of  a 
challenge  depending  on  the  area,  but  the  general  feeling 
in  most  such  areas  is  that  it  is  what  takes  place  after  par- 
sing that  is  more  interesting. 

What  makes  LISP  particularly  well-suited  to  these 
applications  is  that  they  frequently  call  for  operations  on 
expressions  that  are  best  viewed  recursively  as  facts  and 
procedures  stated  in  terms  of  the  immediate  constituents 
of  the  expressions.  This  is  an  instance  of  the  declarative 
style  described  earlier,  for  the  case  when  the  data  are 
expressions. 

To  take  an  example  from  algebraic  simplification,  the 
derivative  of  an  expression  can  be  defined  in  terms  of  the 
derivatives  of  its  immediate  constituents.  Thus  (DERIV 
'(PLUS  X  Y))  would  be: 

(LIST  'PLUS  (DERIV  X) 
(DERIV  Y)) 

where  X  and  Y  themselves  may  be  quite  complicated 
algebraic  expressions.  Similarly  (DERIV  '(TIMES  X  Y)) 
would  be: 

(LIST  'PLUS  (LIST  'TIMES  (DERIV  X)  Y) 
(LIST  'TIMES  X  (DERIV  Y))) 

and  so  on  for  other  operators.  From  such  facts  it  is 
straightforward  to  construct  a  recursive  LISP  program 
for  differentiating  algebraic  expressions. 

A  helpful  way  to  think  about  the  principle  illustrated 
by  the  above  is  to  view  the  equations  from  which  the 
LISP  programs  are  derived  as  dealing  with  only  a  small 
region  of  an  expression  at  a  time.  While  algebra  tends  to 
supply  particularly  nice  examples  of  this  principle,  the 
principle  in  one  form  or  another  pervades  essentially  all 
areas  where  linguistic  structures  are  encountered. 

Conclusion 

This  discussion  of  LISP  has  confined  itself  to  those 
aspects  of  LISP  directly  visible  to  the  user.  It  has  not  con- 
sidered LISP's  substantial  contributions  to  language  im- 
plementation technology,  such  as  garbage  collection,  the 
interpreter/compiler  dichotomy,  and  dynamic  module 
linking  in  place  of  the  usually  more  static  linking  loader. 
It  did  consider  LISP's  relation  to  other  languages,  finding 
APL  to  be  as  good  as  LISP  in  some  respects,  but  lacking 
in  some  particularly  vital  areas. 

While  it  is  difficult  to  consider  LISP  unique  in  any 
single  one  of  its  aspects,  when  looked  at  as  a  whole  LISP 
stands  out  as  a  quite  remarkable  and  original  language 
that  does  credit  to  its  inventor,  John  McCarthy.  ■ 


168        August  1979  ©  BYTE  Publications  Inc 


CBASIC  Business  Software  for  Microcomputers 


Osborne  &  Associates  is  publishing  CBASIC  editions  of  its  business  software 
books,  Payroll  With  Cost  Accounting,  Accounts  Payable  and  Accounts  Receiva- 
ble and  General  Ledger.  The  CBASIC  programs  in  these  new  editions  will  run  on 
many  floppy  disk-based  microcomputer  systems. 


PAYROLL  WITH  COST  ACCOUNTING 


ACCOUNTS  PAYABLE  AND 
ACCOUNTS  RECEIVABLE 


GENERAL  LEDGER 


Each  book  includes  complete  source  listings  with  remarks,  program  and  system 
documentation,  and  an  operator's  manual.  All  this  for  just  $15.00!  The  softbound 
Wang  BASIC  versions  of  all  three  books  are  available  now.  CBASIC  Payroll 
With  Cost  Accounting  is  also  available  now.  The  remaining  books  in  the 
CBASIC  series  will  be  published  in  the  fall  of  1979.  The  new  CBASIC-2  editions 
are  in  a  convenient,  loose-leaf  format. 

Not  a  programmer?  Don't  want  to  key  in  thousands  of  lines  of  source  code  from 
the  book?  You  can  buy  the  programs  ready-to-run  on  floppy  disk  from  one  of  our 
200  dealers.  Contact  us  for  the  name  of  your  nearest  dealer. 

CBASIC  or  Wang  BASIC  won't  work?  Here  is  a  partial  list  of  independent  con- 
sultants who  have  converted  Osborne  programs  to  run  on  many  popular  systems 
using  our  books  as  their  manuals.  Contact  us  for  a  complete,  up-to-date  list  of 
these  conversions. 

CONSULTANTS   •    COMPUTER  STORES    •    SOFTWARE  HOUSES 

You  can  be  a  dealer  for  the  magnetic  surface  of  Osborne's  CBASIC-2  software.  We  will  sell  the  pro- 
grams on  8"  floppy  disks  to  dealers,  consultants  and  computer  stores  only.  The  disk  for  each  book 
sells  for  $250.00.  Once  you  buy  the  floppy  disk  you  may  copy  it  as  many  times  as  you  like,  resell  it, 
change  the  programs,  or  use  it  for  your  own  purposes.  But  the  best  part  is  that  we  have  already  writ- 
ten your  operator's  manuals — our  books!  We  grant  you  the  unrestricted  right  to  use,  transfer,  or 
otherwise  deal  in  any  way  with  the  machine-readable  form  of  our  BASIC  programs.  We  copyright 
only  the  printed  word  in  our  books. 


ALPHA  MICRO: 

Peler  Burke 

THE  BASIC  BUSINESS  SOFTWARE  CO..  INC 
P.O.  Box  2032 

Sail  Lake  City.  Ulah   74110        (801)  .163-1199 
APPLE  II: 
Jimmy  Waller 

A.C.E,  COMPUTER  SYSTEMS 
2449  North  Westshore 
Tampa,  Florida   33607     (813)  872-2798 

COMMODORE  PET: 

Chuck  Sluarl 

CMS  SOFTWARE 

51  \5  Mencfee  Drive 

Dallas,  Texas  75227   (214)  381-0690 
CROMEMCO: 

Richard  French 

THE  NETWORK  COMPUTER  SYSTEMS 

495  Third  Avenue  #8 

San  Francisco,  California  94118  (415)  668-7777 
DATAPOINT  1500: 

Paul  Marchetti 

OCCIDENTAL  COMPUTER  SYSTEMS,  INC. 

6666  Valjcan  Avenue 

Van  Nuys,  California  91406    (213)  782-.1005 
MICROPOLIS,  NORTHSTAR 
(REQUIRES  CP/M): 

James  Rounirce 

R&A  COMPUTER  SERVICES 

7700  Edgewaler  Drive.  Suite  723 

Oakland.  California  94621    (415)562-3133 
MICROSOFT  disk  BASIC: 

Dan  Kindred 

GNAT  COMPUTERS 

7895  Convoy  Court 

San  Diego.  California  921 1 1    (714)  560-0433 
NORTHSTAR  BASIC: 

Isaac  Bornstein 

COMPUTER  SERVICES  OF  ENCINITAS 

341  WiUowspring  Drive 

Encinitas,  California  92024     (714)  436-2486 
POLYMORPHIC  8813: 

Bruno  Caprez. 

KEYSTONE  SYSTEMS 

P.O.  Box  767 

Spokane,  Wa.shinglon  99210    (509)747-5623 
TRS-80: 

Don  French 

APPLIED  DATA  CORPORATION 

P.O.  Box  16020 

Fort  Worth,  Texas  76133    (817)  738-0251 

Irwin  Taranto 

TARANTO  &  ASSOCIATES 

P.O.  Box  6073 

San  Raftiel,  California  94903    (4151  472-1415 

WANG  BASIC  ON  FLOPPY  DISK: 

Richard  Armour 

ATLANTIC  COMPUTING  &  CONSULTING 

P.O.  Box  7294 

Hampton,  Virginia  23666     (804)  340-9350 


Order  Form 


Name: 


Address; , 

City: 

Stale: 


.  Zip:  . 


Phone:. 


^j  \  OSBORNE  &  ASSOCIATES 

^-^  630  Bancroft  Way,   Dept.  123 

Berkeley,  CA  94710  USA 

(415)  548-2805  TWX  910-366-7277 


Title 

Price 

Quantity 

Amount 

22-5     Payroll  With  Cost  Accounting  -  CBASIC 

$15.00 

23-3     Accounts  Payable/Receivable  -  CBASIC 

15.00 

24-1     General  Ledger  -  CBASIC 

15.00 

09-8     Payroll  With  Cost  Accounting  -  Wang  BASIC 

15.00 

1 3-6     Accounts  Payable/Receivable  •  Wang  BASIC 

15,00 

20-9     General  Ledger  -  Wang  BASIC 

15.00 

Shipping  (Shipping  for  large  orders  to  be  arranged)                    California  residents  tax 

n  .All  ioreign  orders  $4.00  per  book  tor  iiirmail                                                           . 
n  $0.45  per  book  4th  class  in  the  U.S.(allow  3-4  weeks)                                        ''''""^ 
D  $0.75  per  book  UPS  in  the  U.S.  (allow  10  days)                      Total  Amount  Enclosed 

n  SI. 50  per  book  special  rush  shipment  by  air  in  the  U.S. 

Calif,  residcnls  add  6%  sales  tax. 

S.F.  BART  residcnls  add  6-1/2  %  sales  I;u, 


D  I  am  an  end  user  iniercstcd  in 
running  CBASIC  programs  on  disk. 
Please  nolify  me  of  the  closest  dealer 
Tor; 


D  I  am  a  dealer  interested  in 
purchasing  CBASIC  programs  on 
disk  for  resale  Please  send  descrip- 
tion and  order  information  for: 


D  CBASIC  Payroll  With  Cost  Accouniing 
D  CBASIC  Accounts  Payable/Receivable 
D  CBASIC  General  Ledger 


Please  send  the  following  information: 
D  Becoming  an  Osborne  dealer 
a  School  discounts 


D   List  of  foreign  distributors 

n  Other  Osborne  publications 

n  Please  send  me  the  current  conversion  I 


Payment  in  advance  must  be  enclosed  for  purchases  of  up  to  $70.00.  Invoicing 
U.S.  purchases  over  $70.00  available  upon  approval  of  your  account.  All  foreign 
orders  must  be  prepaid  in  U.S.  dollars  drawn  on  a  U.  S.  bank. 


Circle  292  on  inquiry  card. 


S1034 
BYTE  August  1979         169 


A  Preview  of  the 
Motorola  68000 


A  I  Halsema 

4921  Patrae  St 

Los  Angeles  CA  90066 


It  is  difficult  to  classify  the  new 
Motorola  68000  processor.  It  seems 
incongruous  to  call  a  machine  with  32 
bit  wide  data  paths  a  microcomputer. 
The  68000  should  be  available  in  late 
1979.  As  this  is  being  written,  the  ar- 
chitecture of  the  machine  has  been 
frozen,  and  the  microcode  is  nearing 


completion.  A  user  programmable, 
on  chip,  control  memory  for  dyna- 
mically changing  the  machine's 
instruction  set  is  not  planned,  but  you 
may  be  able  to  specify  your  own 
microcode,  which  is  burned  into  an 
on  chip  read  only  control  memory  at 
the  factory. 


vcc 

GND 
CLK 


FCO 
FCT 


E  ♦- 
VMA  -- 
VP  A  — 
RES  «- 
HLT   — 


BERR 


c 


MC68000 


ADDRESS  )  (Al  -A23 


} 


:> 


(D0-D15) 


AS 

R/W 

UDS 


-*  LOS 


BR 
BG 


BGACK 

lACK 
fPLO 
iTUi 
[PL2 


Figure  1:  Pin  assignments  for  the  Motorola  68000  package.  A  description  of 
the  functions  of  the  different  pins  is  found  in  table  1.  Figure  reproduced 
courtesy  of  Motorola  Semiconductor  Products  Inc. 


Using  HMOS  (high  density  metal 
oxide  silicon),  the  68000  will  come  in 
a  64  pin  package  (see  figure  1). 
Capable  of  directly  addressing  up  to 
16  M  bytes  (actually  2^4  = 
16,777,216  bytes)  of  memory,  the 
68000  is  about  15  times  more  complex 
than  the  6800  (coincidentally  it  has 
about  68,000  transistors  on  the  chip, 
and  has  about  10  times  greater 
throughput).  External  data  paths  are 
16  bits  wide  and  access  memory  that 
is  organized  as  bytes.  Through  the 
use  of  a  signal  called  VPA  (valid 
peripheral  address),  the  68000  will  be 
able  to  use  the  slower  6800  peripheral 
devices. 

Internally  the  68000  is  an  ortho- 
gonal and  consistent  machine,  with 
16  identical  32  bit  accumulators,  61 
basic  mnemonics  (shown  in  table  2), 
which  can  be  used  with  any  of  the  14 
addressing  modes  and  any  of  the  six 
data  types.  See  figure  2  for  an  illustra- 
tion of  the  programming  model.  The 
five  basic  addressing  modes  are 
register  direct,  register  indirect,  ab- 
solute, immediate,  and  program 
counter  relative.  The  ability  to  do 
postincrementing,  predecrementing, 
offsetting,  and  indexing  is  included. 
Data  types  recognized  by  the  machine 
are  bits,  bytes,  BCD  (binary  coded 
decimal)  digits,  ASCII  characters,  16 

About  the  Author 

AillU  Ian  Halsema  has  worked  as  a  program- 
mer since  1971.  He  is  now  a  senior  member  of 
the  programming  staff  at  Xerox  Corp.  His  per- 
sonal computer  system  includes  a  Southwest 
Technical  Products  Co  6800  and  Okidata 
CP-110  printer. 


170        August  1979  ©  BYTE  Publications  Inc 


bit  words,  and  32  bit  long  words.  By 
combining  the  instructions,  data 
types,  and  addressing  modes,  more 
than  1000  instructions  are  available. 

Some  of  the  more  interesting  in- 
structions are  PACK  (pack  ASCII  to 
BCD  digit  form),  UNPK  (unpack 
from  BCD  digits  to  ASCII),  CHK 
(check  register  against  bounds), 
TRAP  (provides  access  to  16  software 
trap  vectors),  LINK,  and  UNLK  (link- 
ed list  operations).  With  eight  levels 
of  priority  interrupts,  this  machine 
can  access  256  interrupt  vectors. 
Hardware  traps  to  catch  software 
errors  include  word  access  with  odd 
address,  illegal  instruction,  unimple- 
mented  instruction,  illegal  addressing 
mode,  illegal  memory  access, 
overflow  on  divide,  and  overflow 
condition  code.  Through  the  use  of 
the  unimplemented  instruction  trap, 
the  user  can  implement  his  own  oper- 
ation codes  (in  a  fashion  similar  to 
SVC  on  the  IBM  360/370  systems). 

Designed  with  timesharing  in 
mind,  the  68000  has  supervisory  and 
user  states,  with  the  ability  to  run 
eight  tasks  in  the  user  state  simul- 
taneously. Supervisory  state  makes 
certain  instructions  legal  for  oper- 
ating a  separate  memory  manage- 
ment controller.  This  controller  will 
provide  dynamic  management  of 
memory  segments  that  contain  read 
only  data,  read/write  data,  program 
code,  or  protected  data  or  code.  As 
an  aid  in  debugging,  the  machine  in- 
cludes a  bit  in  the  status  register  that, 
when  set,  puts  the  machine  into  single 
step  operation. 

The  68000  instruction  set  was 
designed  by  programmers  for  pro- 
grammers, and  is  designed  for  ease  of 
use  in  compiler  generation  and 
timesharing  system  implementation. 
The  orthogonality  referred  to  above 
reduces  the  number  of  details  the  pro- 
grammer must  keep  in  mind  when 
programming  —  a  register  is  a 
register  like  any  other  on  the 
machine,  with  no  special  conditions 
restricting  register  use. 

Applications 

Computers  are  useful  for  process- 
ing vast  amounts  of  data,  and  for  per- 
forming long  repetitive  sequences  of 
operations.  Since  the  personal  com- 
puter enthusiast  has  neither  the 
facilities  nor  the  time  to  collect  large 
amounts  of  data  for  processing,  the 
computer  is  more  likely  to  be  used  in 


Pin  Identification  and  Definitions 


A1-A23 

Address  Leads 

D0-D15 

Data  Leads 

AS 

Address  Strobe 

R/W 

Read/Write 

UDS,  LDS 

Data  Strobes 

DTACK 
BR 

Data  Transfer 
Acknowledge 
Bus  Request 

BG 

Bus  Grant 

BGACK 

lACK 

IPLO, 
IPL1, 
IPL2 
FCO,  FC1 

Bus  Grant 

Acknowledge 

Interrupt 

Acknowledge 

Interrupt  Priority 

Level 

Function  Code 

CLK 

Clock 

RES 

Reset 

HLT 
BERR 

Halt 
Bus  Error 

E 
VPA 

VMA 

gI^d 

Enable 

Valid  Periptieral 

Address 

Valid  Memory 

Address 

+  5  V 

Ground  (two  pins) 

23  bit  address  bus;  capable  of  addressing 
16,777,216  bytes  in  conjunction  witti  UDS  and 
LDS. 

16  bit  data  bus;  transfers  8  or  16  bits  of  infor- 
mation. 

Indicates  valid  address  and  provides  a  bus  lock  for 
Indivisible  operations. 

Defines   bus   operation   as   Read   or   Write  and 
controls  external  bus  buffers. 
Identifies  the  byte(s)  to  be  operated  on  according 
to  R/W  and  AS. 

Allows  ttie  bus  cycle  to  synchronize  with  slow 
devices  or  memories. 

Input  to  the  processor  from  a  device  requesting 
the  bus. 

Output  from  the  processor  granting  bus  arbitra- 
tion. 

Confirmation  signal  from  BG  indicating  a  valid 
selection  from  the  arbitration  process. 
Identifies  that  the  bus  is  performing  an  Interrupt 
service  cycle. 

Provides  the  priority  level  of  the  interrupting  func- 
tion to  the  processor. 

Provides  external  devices  with  information  about 
the  current  bus  cycle. 

Master  TTL  (transistor-transistor  logic)  input  clock 
to  the  processor. 

Provides  reset  (initialization)  signal  to  the  pro- 
cessor and  peripheral  devices. 
Stops  the  processor  and  allows  single  stepping. 
Provides  termination  of  a  bus  cycle  if  no  response 
or  an  invalid  response  is  received. 
Enable    clock    for    M6800    systems.     Identifies 
addressed  area  as  a  6800  compatible  area. 

Indicates  to  6800  family  devices  that  a  valid 
address  is  on  the  bus. 


Table  1:  Description  of  pin  functions  on  68000  processor. 


the  second  mode  (number  crunching). 
Today's  microprocessors  fail  miser- 
ably as  number  crunchers  due  to  low 
speeds  and  limited  amounts  of 
memory  space.  The  68000  will  correct 
these  deficiencies.  (Coupled  with  the 
new  low  cost,  high  density  memory 
devices  with  64  K  bit  capacity  and 
with  even  greater  density  coming,  the 
personal  computer  will  attain  or  ex- 
ceed the  power  of  an  IBM  360  Model 
30  within  the  next  decade.)  Number 
crunching  applications  requiring  little 
external  storage  (ie:  disk  or  drum)  in- 
clude artificial  intelligence,  encryp- 
tion/decryption, simulation,  games, 
and  Dynabook  type  applications. 
[See  the  article  by  Alan  Kay  on  page 
230  of  the  September  1977  Scientific 
American  for  a  general  description  of 
small  talk,  a  software  system  intend- 
ed for  small  portable  Dynabook  com- 
puters  CH] 

Artificial  intelligence  attempts  to 
provide  the  computer  with  the  ability 
to  learn  from  past  experience  (ie: 
heuristic  procedures),  and  to  simulate 


operations  of  the  human  brain  in 
recognizing  patterns.  Brain  simula- 
tions are  generally  performed  using 
arrays  in  memory  as  brain  cells,  with 
software  logic  taking  the  part  of  the 
complex  interconnections  between 
cells.  Array  arithmetic  requires  a  fair 
amount  of  processing  power.  Such 
power  is  not  available  on  8  bit 
machines. 

A  common  array  operation  in  arti- 
ficial intelligence  is  finding  the  inner 
or  dot  product  of  two  arrays.  If  array 
X  represents  a  set  of  cell  states,  and 
array  D  represents  data  upon  which 
the  "brain"  is  to  work,  then  the  inner 
product  of  the  two  arrays  is  repre- 
sented by:  z  =  XiDi  +  X2D2  + 
...-(-XnDn,  where  z  might  be  the 
result  of  a  vote  taken  by  n  cells  of  the 
"brain"  in  a  committee  network.  This 
calculation  can  be  very  slow  on  an  8 
bit  machine  without  hardware  multi- 
ply, and  exceedingly  slow  if  the  ar- 
rays are  large  or  each  element  is 
several  bytes  long.  Multidimensional 
arrays    take    up    large    amounts    of 


August  1979  ©  BYTE  Publications  Inc        171 


PROGRAMMING  MODEL 


31 

16  15        8  7 

0 

DO 

Dl 

D2 

' 

D3 

EIGHT 

_ 

DATA 

- 

D4 
D5 

REGISTERS 

06 

D7 

31 

16  15 

0 

AO 

Al 

A2 

- 

A3 

EIGHT 

- 

ADDRESS 

- 

A5 

REGISTERS 

1 

A6 
A7 

A7' 

USER  STACK  POINTER 

SUPERVISORY  STACK  POINTER 

23 

0 

PROGRAM 

1 

COUNTER 

15     e 

7        0 

STATUS 

REGISTER 

STATUS  REGISTER 


15 

13 

10 

8 

4 

0 

T 

i 

S 

i 

i 

iz 

ii 

lo 

1 

W^/< 

X 

N 

Z 

V 

c 

TRACE  MODE 


SUPERVISORY 


INTERRUPT 
MASK 


EXTEND 

NEGATIVE 

ZERO 

OVERFLOW 

CARRY 


Figure  2:  Programming  model  and  register  organization  for  the  Motorola 
68000  processor.  Note  that  the  data  registers  and  address  registers  are  func- 
tionally identical  except  for  register  A7.  AT ,  the  supervisory  mode  stack 
pointer,  is  not  available  to  the  programmer.  Figure  reproduced  courtesy  of 
Motorola  Semiconductor  Products  Inc. 


memory  space  which  today's  micro- 
processors cannot  support. 

Modern  methods  of  encrypting  and 
decrypting  messages  can  require  large 
amounts  of  processing  power.  As  an 
example,  the  method  for  obtaining 
digital  signatures  and  public  key 
cryptosystems  developed  by  R  L 
Rivest  (a  "trapdoor"  system)  requires 
raising  the  message  text  to  a  power 
and  dividing  by  two  large  secret 
prime  numbers.  Large  means 
anything  from  50  to  500  digits,  with 
the  larger  numbers  giving  greater 
security.  The  mathematical  oper- 
ations of  raising  to  a  power,  perform- 
ing lengthy  divisions,  and  finding  the 
large  prime  numbers  (which  need  be 
done  only  once)  cannot  feasibly  be 
performed  on  an  8-bit  machine,  but 
come  within  the  realm  of  the  possible 
when  using  the  68000. 

A  simple  example  that  the  reader 
can  program  involves  finding  the 
Godel  number  (named  after  the 
mathematician  who  discovered  them) 
which  encrypts  a  word  or  message. 
Each  character  in  the  message  is 
represented  by  the  natural  order  of 
primes  (2,  3,  5,  7,  11,  13,  ...etc).  The 
identity  of  the  letter  occupying  a  posi- 
tion in  the  message  is  given  by  an  ex- 
ponent: the  exponent  1  meaning  that 
the  letter  is  an  A,  2  meaning  a  B,  etc. 
The  message  as  a  whole  is  then  ren- 
dered as  the  product  of  all  the  bases 
and  exponents.  For  example,  the 
word  "CAB"  can  be  represented  as 
23X31X52  or  600  (8X3X25  =  600). 
Decode  the  message  by  dividing  the 
product  by  each  prime  number  until  a 
remainder  appears.  The  number  of 
divisions  is  the  exponent  representing 
a  particular  character.  Regardless  of 
how  the  problem  is  ordered,  much 
computation  is  required  to  find  the 
prime  numbers,  exponentiate,  and 
multiply.  This  gives  you  an  idea  of 
the  sort  of  processing  power  required 
for  a  full  public  key  cryptosystem. 

Games  and  simulations  can  become 
more  complex.  A  space  war  game 
was  programmed  nearly  a  decade  ago 
at  Massachusetts  Institute  of 
Technology  that  included  realistic 
simulations  of  orbital  mechanics  in 
the  vicinity  of  a  planet  or  star.  A 
space  war  game  with  simulations  of 
relativistic  effects  at  near  light  speeds 
could   be   challenging   both   for    the 


172        AugusI  1979  ©  BYTE  Publications  Inc 


"THE  ORIGINAL " 

I  Personal 
C  Computing 


Plan  Now  to  attend 
the  best  Personal 
Computing  show  ever. 


Friday,  Saturday,  Sunday 
October  5 -6 -7th 
Philadelphia  Civic  Center 

Philadelphia,  Pa. 


PC  79 


® 


Don't  be  confused  —  Other  shows  are  copying  us  but 
they  cannot  equal  us.  We  are  the  Original  Personal 
Computing  Show.  Now  in  our  Fourth  Year. 


FEATURING: 

Major  Exhibits 

from  the 

Leading  Companies 

• 

Personal  Computing  College 

with  80  Hours  of 

Free  Seminars  by  the 

Industry's  Leading  Speakers 

• 

Major  Emphasis 

on 

Software  Exhibits 

• 

2nd  Annual 

Computer  Music  Festival 

Bigger!   Better! 

• 

Antique 

Computing  Devices 

on  Display 

• 

See  All  the  Latest 

Hardware 

• 

Business  Systems 

and 
Business  Software 


For  more  information  and  a 
Free  subscription  to  our  "PERSONAL 
COMPUTING"  newspaper,  send 
your  name  and  address  to: 


PERSONAL  COMPUTING  79 

Rt.  1,  Box  242  .  IVIays  Landing,  N.J.  08330  .  609/653-1188 

Industry  TRADE  SHOW  on  October  4th 
For  exhibiting  information  please  call  or  write. 


Circle  304  on  inquiry  card. 


BYTE  August  1979         173 


player  and  the  programmer.  Simula- 
tions of  nonlinear  and  dynamic  pro- 
cesses require  the  large  amounts  of 
computing  power  made  available  by 
the  68000.  High  resolution  graphics 
require  the  large  address  space  pro- 
vided by  the  68000,  and  with  suffi- 
cient processing  speed,  true  real  time 
animation  can  be  created. 
Dynabook  is  a  project  headed  by 


Alan  Kay  at  Xerox  Corporation's 
Palo  Alto  Research  Center.  One  of 
the  objects  is  to  provide  the  power 
of  a  medium  size  computer  in  a  pack- 
age the  size  of  one  encyclopedia 
volume.  The  68000  computer,  bubble 
memories,  and  low  cost  semiconduc- 
tor memories  bring  this  target  within 
reach.  With  8  simultaneous  tasks,  the 
owner  of  such  a  system  could  use  one 


Mnemonic 

Description 

ABCD 

Add  Decimal  with  Extend 

ADD 

Add 

ADDX 

Add  with  Extend 

AND 

Logical  And 

ASL 

Arithmetic  Shift  Left 

ASR 

Arithmetic  Shift  Right 

BCC 

Branch  Conditionally 

BCHG 

Bit  Test  and  Change 

BCLR 

Bit  Test  and  Clear 

BRA 

Branch  Always 

BSET 

Bit  Test  and  Set 

BSR 

Branch  to  Subroutine 

BTST 

Bit  Test 

CHK 

Check  Register  Against  Bounds 

CLR 

Clear  Operand 

CMP 

Arithmetic  Compare 

DCNT 

Decrement  and  Branch  Nonzero 

DIVS 

Signed  Divide 

DIVU 

Unsigned  Divide 

EOR 

Exclusive  Or 

EXG 

Exchange  Registers 

EXT 

Sign  Extend 

JMP 

Jump 

JSR 

Jump  to  Subroutine 

LDM 

Load  Multiple  Registers 

LDQ 

Load  Register  Quick 

LEA 

Load  Effective  Address 

LINK 

Link  Stack 

LSL 

Logical  Shift  Left 

LSR 

Logical  Shift  Right 

MOVE 

Move 

MULS 

Signed  Multiply 

MULU 

Unsigned  Multiply 

NBCD 

Negate  Decimal  with  Extend 

NEG 

Two's  Complement 

NEGX 

Two's  Complement  with  Extend 

NOP 

No  Operation 

NOT 

One's  Complement 

OR 

Logical  Or 

PACK 

Pack  ASCII  to  BCD  (binary  coded  decimal) 

PEA 

Push  Effective  Address 

RESET 

Reset  External  Devices 

ROTL 

Rotate  Left  without  Extend 

ROTR 

Rotate  Right  without  Extend 

ROTXL 

Rotate  Left  with  Extend 

ROTXR 

Rotate  Right  with  Extend 

RTR 

Return  and  Restore 

RTS 

Return  from  Subroutine 

SBCD 

Subtract  Decimal  with  Extend 

sec 

Set  Conditional 

STM 

Store  Multiple  Registers 

STOP 

Stop 

SUB 

Subtract 

SUBX 

Subtract  with  Extend 

SWAP 

Swap  Data  Register  Halves 

TAS 

Test  and  Set  Operand 

TRAP 

Trap 

TRAPV 

Trap  on  Overflow 

TST 

Test 

UNLK 

Unlink  Stack 

UNPK 

Unpack  BCD  to  ASCII 

task  as  a  clock,  one  for  a  calculator, 
one  for  personal  data  base  process- 
ing, another  for  memos,  reminders, 
and  schedules,  and  yet  another  for 
text  processing,  and  still  have  3  other 
tasks  available  for  long-term  number 
crunching,  games,  or  whatever  the 
imagination  can  visualize.  With  as 
much  as  16  M  bytes  of  memory,  each 
task  could  be  allotted  2  M  bytes.  This 
amount  of  storage  is  difficult  to  com- 
prehend, but  for  comparison,  the  text 
of  this  article  requires  about  10,000 
bytes  of  storage.  This  Dynabook  sys- 
tem would  be  battery  powered  and 
portable,  with  a  solid-state  display 
and  thin,  typewriter  keyboard. 

There  can  be  no  doutst  that  the  in- 
expensive super  computer  is  coming. 
IBM  estimates  that  an  entire  central 
processing  unit  with  1  M  bytes  of 
memory  will  fit  in  a  cube  1  inch  (2.54 
cm)  on  a  side  by  the  end  of  the  1980s. 
[This  particular  device  will  require 
cooling  to  superconductor  tempera- 
tures. ]  An  example  of  what  is  possible 
with  today's  technology  can  be  seen 
in  Texas  Instruments'  "Speak  and 
Spell"  toy,  which  for  under  $50  pro- 
vides a  keyboard,  alphanumeric 
display,  and  microprocessor  control- 
led speech  feedback  with  a  vocabu- 
lary of  about  250  words  and 
numerous  messages  and  phrases.  The 
functions  that  can  be  performed  by 
the  Motorola  68000  and  the  new 
generation  of  microprocessors  it 
represents  are  limited  only  by  the  im- 
agination.! 


Table  2:  Instruction  set  of  68000  processor.  Operation  of  instructions  is  as  con- 
sistent as  possible. 


BIBLIOGRAPHY 

1.  Feucht,  Dennis,  "Pattern  Recognition: 
Basic  Concepts  and  Implementation," 
Computer  Design,  December  1977,  pages 
57  thru  68. 

2.  Kay,  Alan  C,  "Microelectronics  and  the 
Personal  Computer,"  Scientific  American, 
volume  237,  number  3,  September  1977, 
page  230. 

3.  Rivest,  R  L;  Shamir,  A;  Adieman,  L,  "A 
Method  for  Obtaining  Digital  Signatures 
and  Public-Key  Cryptosystems,"  Com- 
munications of  the  ACM,  volume  21, 
number  2,  February  1978,  pages  120  thru 
126. 


174       August  1979  ©  BYTE  Publications  Inc 


Here's  the  LATEST  news... 

We're  expanding  again!  CompuKit  is  now  CompuPro  to  reflect  the  fact  that  more  and  more 
of  our  production  is  being  devoted  to  non-kit  products  ...  not  only  is  there  increased  demand 
for  our  standard  assembled  &  tested  models,  but  the  high-reliability  Certified  System  Compo- 
nent boards  (with  200  hour  burn-in  and  immediate  replacement  in  event  of  failure  within  1  year 
of  invoice  date)  are  really  taking  off.  Kit  builders  need  not  fear,  however;  when  economy  is  para- 
mount, most  CompuPro  products  are  also  available  in  "unl<it"  form  (sockets,  bypass  caps  pre- 
soldered  in  place).  All  of  this  is  part  of  our  continuing  commitment  to  provide  the  best  possible 
products  at  the  lowest  possible  prices  ...  the  same  commitment  responsible  for  making  us  an 
industry  leader  in  the  first  place. 

THE  ECONORfiM*  MEMORY  LINE: 

LOW  POWER  mo  LOW  PRICE  MEET  HIGH  TECHNOLOGY. 


Name 

Storage 

Buss 

Speed 

Tectinology 

Configuration 

Unkit 

Assm 

esc 

Econoram  MA 

8KX8 

S-100 

4  MHz 

Static 

2-4K  blocks 

$149 

$179 

$239 

Econoram  IV 

16KX8 

S-100 

4  MHz 

static 

1-16K 

$295 

$329 

$429 

Econoram  VI 

12KX8 

H8 

2  MHz 

static 

1-8K,  1-4K 

$200 

$270 

N/A 

Econoram  VII 

24KX8 

S-100 

4  MHz 

static 

2-4K,  2-8K 

$445 

$485 

$605 

Econoram  IX 

32KX8 

Dig  Grp 

4  MHz 

static 

2-4K,  1-8K,  1-1 6K 

$559 

$639 

N/A 

Econoram  X 

32KX8 

S-100 

4  MHz 

static 

2-8K,  1-16K 

$599 

$649 

$789 

Econoram  XI 

32KX8 

SBC 

4  MHz 

static 

2-8K,  1-1 6K 

N/A 

N/A 

$1050 

BfiNK  SELECT  MEMORIES  (for  filpha  Micro  Systems. 

Marinchip,  etc.) 

Econoram  Xii-16 

16KX8 

S-100 

4  MHz 

static 

2  indep.  banl<s** 

$369 

$419 

$  519 

Econoram  XII-24 

24KX8 

S-100 

4  MHz 

static 

2  indep.  banl<s** 

$479 

$539 

$  649 

Econoram  XIII 

32KX8 

S-100 

4  MHz 

static 

2  indep.  banks** 

$629 

$699 

$  849 

'Econoram  is  a  trademark  of  Bill  Godbout  Electronics 

"Econoram  Xil-16  and 

24  have  2  independent  banks  addressable  on  8K  boundaries;    Econoram  XIII  tias  2  independent  banks  addressable 

on  16K  boundaries. 

SPECIAL  SUMMER  SffLE:  16K  MEMORY 
EXPffNSION  CHIP  SET-H99-$87.20 

20%  off  one  of  our  all-tinne  best  sellers  from  July  15  to  August  31 
only.  For  Radio  Shack-80,  Exidy  Sorcerer,  Apple  computers.  250  ns  ac- 
cess time,  low  power  parts,  DIP  shunts  included,  1  year  limited  warran- 
ty, and  easy-to-follow  instructions  tfiat  make  memory  expansion  a 
snap. 

S-100  MOTHERBOfiRD 

18  slot  unkit:  $124.  Each  motherboard  includes  all 
edge  connectors  wave-soldered  in  place  for  easy  assembly,  integral 
active  termination  circuitry,  extra  wide  power  and  ground  traces,  and 
much  more. 

fiCTIVE  TERMINfiTOR  KIT  $34.50 

As  written  up  by  Craig  Anderton  in  the  April  79  issue  of  Kilobaud 
Microcomputing.  Our  much  imitated  design  plugs  into  any  S-100 
motherboard  to  reduce  ringing,  crosstalk,  noise,  and  other  buss-related 
problems, 

H8  EXTENDER  BOfiRD  KIT  $39 

New  from  Mullen  Computer  Products.  Really  takes  the  hassle  out  of 
troubleshooting  or  testing  the  popular  Heath  H8  microcomputer;  in- 
cludes jumper  links  in  the  power  supply  lines  for  insertion  of  fuses.  Am- 
meters, current  limiters,  and  the  like. 

S-100  EXTENDER  BOfiRD  KIT  $39 

From  Mullen  Computer  Products.  Includes  jumper  links  in  supply 
lines,  on  board  logic  probe,  and  general  purpose  "kluge  board"  area  for 
installing  custom  testing  jigs  or  other  circuits. 


DOfiL  CHfiNNEL/DUfiL  FUNCTION  S-100 
I/O  BOfiRD  $189  unkit,  $249  assm. 

This  board  does  things  the  others  only  dream  about.  Features  two 
independently  addressable  serial  ports  with  full  RS232C,  current  loop 
(20  mA)  and  TTL  signals  on  both  ports.  Includes  on  board  xtal  timebase 
and  Baud  rate  generator  for  Baud  rates  up  to  19.2  KBaud,  EIA  2320 
receivers  and  drivers  (1488, 1489),  hardware  LSI  UARTs  that  don't  tie  up 
the  computer's  CPU,  operation  with  2  or  4  MHz  systems,  software  pro- 
grammable UART  parameters/interupt  enables/handshaking  lines 
(handshaking  lines  are  full  RS232  —  not  just  a  3  wire  system),  optically 
isolated  current  loop,  provision  for  custom  frequency  compensation  on 
both  receive  and  transmit  sides  to  accommodate  varying  speed/noise 
situations  or  unusual  cable  lengths  . . .  and  even  all  this  isn't  the  full 
story  of  what  this  board  can  do  for  you.  See  it  in  person  at  a  computer 
store  near  you,  or  order  direct  from  us. 

2708  EROM  BOfiRD  "UNKIT"  $85 

4  independently  addressable  4K  blocks,  with  selective  disable  for 
each  block.  Built  to  CompuPro/Econoram  standards  (dipswitch  ad- 
dressing, top  quality  board,  sockets  wave-soldered  in  place),  and  in- 
cludes dipswitch  selectable  jump  start  built  right  into  the  board.  In- 
cludes all  support  chips  and  manual,  but  does  not  include  EROMs. 
Special:  if  you  order  before  August  1st,  our  introductory  price  of  $69.95 
is  still  in  effect.  Orders  postmarked  August  1st  or  later  are  no  longer 
eligible  for  the  introductory  price  ...  no  exceptions. 

POPULfiR  COMPUTER  ICs 

Low  power  21L02  static  IK  RAMs  on  special:  10/$9.90  (under  H  per 
byte!)  1791  MOS  LSI  dual  density  disc  controller  from  Western  Digital: 
$59  with  pinout  and  data.  1771  single  density  controller:  $22.50.  All 
parts  are  offered  on  a  while-they-last  basis. 


We  realize  that  it  is  becoming  less  and  less  common  for  manufacturers  to  offer  their  products  in  kit  form,  so  we'd 
like  to  emphasize  that  we  are  not  planning  to  phase  out  our  kits.  The  "flackers"  who  derive  enjoyment  from  building 
and  testing  equipment  themselves  were  our  very  first  customers,  and  we  recognize  that  these  experimentally-minded 
individuals  have  been  responsible  for  many  significant  developments  in  the  microcomputer  field.  As  long  as  people 
want  to  put  things  together  with  their  very  own  hands,  we'll  continue  to  offer  kits  . . .  and  continue  to  repair  them 
promptly  under  the  terms  of  our  1  year  limited  warranty  (almost  always  without  charge),  in  the  rare  event  that  a 
problem  occurs. 


TERMS:  Gal.  res.  add  tax.  Allow 
5%  shipping,  excess  refunded. 
Orders  under  $15  add  $1  han- 
dling. VISA'" /Mastercharge*'  call 
our  24  hour  order  desk  at  (415) 
562-0636.  COD  OK  with  street  ad- 
dress for  UPS.  Prices  good 
through  cover  month  of  magazine 
except  as  noted. 

Circle  150  on  inquiry  card. 


Box  2355,  Oakland  Airport,  CA  94614 


FREE  FLYER:  We'll  bv  glad  to  tell 

^\  /*s  ps  f7)  (7\  nn  R-.  V"  """'*  """'  ""  ipots  of  this  ad 

riAlilimL°jl01      IIP  pnmlts.  Just  sand  your  name  and 

from        iDlvI/^^  V2/IL  address,   we'll  take  tore  of  the 

^^  ELECTRONICS    ^  "'••  If  you're  in  a  hurry,  enclose 

4Ic    In    stamps    for    1st    class 

dellveiy. 

BYTE  August  1979         175 


LISP  Based  Symbolic 
Math  Systems 


David  R  Stoutemyer 
The  Soft  Warehouse 

FOB  11174 
Honolulu  HI  96828 


On  an  interactive  terminal,  a  user  begins  by  typing  the 
assignment: 

Q  -  6*Xt3/(9*X) 

where  "  denotes  assignment,  *  denotes  muItipHcation, 
and  t  denotes  raising  to  a  power.  Such  a  command  would 
be  erroneous  in  most  languages  because  the  variable  X 
has  not  previously  received  a  value.  However,  symbolic 
math  systems  accept  and  even  simplify  expressions  con- 
taining such  unbound  variables.  Thus,  the  response  of 
such  a  system  to  the  above  command  is  the  automatic 
output: 

2*Xl2/3 

which  is  also  saved  as  the  value  of  Q.  Some  of  the 
systems  have  more  elaborate  output  routines  which 
would  display  the  above  output  in  a  two-dimensional 
format  such  as  the  following: 


2X1 
3 


It  is  the  ability  to  accept  and  transform  input-data  con- 
sisting of  expressions  which  contain  unbound  variables 
that  most  characterizes  computer  symbolic  math.  As  is 
also  illustrated  by  this  example,  virtually  all  such  systems 
are  capable  of  exact  rational  arithmetic.  In  fact,  the  ra- 
tional arithmetic  is  usually  indefinite  precision,  wherein 
each  number  occupies  as  much  memory  as  is  necessary 
for  exact  representation  up  to  some  very  large  maximum, 
imposed  perhaps  only  by  the  total  amount  of  remaining 
space  allocated  for  numbers.  Even  the  small  8080  based 
muMATH-79  system  can  compute  99"  exactly,  in  less 
than  three  seconds,  and  the  SCRATCHPAD  system  was  once 
involved  in  a  proof  that  the  incredibly  large  number 
219.937  —1  is  prime. 


Virtually  all  symbolic  math  systems  also  support  sym- 
bolic differentiation.  For  example,  if  the  user  enters  an  ex- 
pression after  the  above  assignment  to  Q  such  as  the 
trigonometic  example: 

DIF(A*SIN(Q),X), 

the  automatic  interactive  response  is: 

4*A*X*COS(2*Xt2/3)/3 

Later  sections  will  discuss  even  more  sophisticated  built- 
in  mathematical  capabilities  of  these  systems. 

Symbolic  math  systems  are  often  called  computer- 
algebra  systems  despite  their  ability  to  do  trigonometric 
simplification,  calculus,  and  other  operations  aside  from 
algebra. 

Most  general-purpose  computer-algebra  systems  are 
implemented  in  LISP  or  in  a  disguised  variant  thereof, 
because  LISP  is  especially  suitable  for  the  purpose.  This  is 
not  to  say  that  the  user  of  a  LISP  based  system  must 
know  LISP  or  use  a  LISP  like  syntax  for  his  expressions. 
Because  the  syntax  of  traditional  applied  math  is  so  dif- 
ferent from  that  of  LISP,  each  of  these  systems  provides  a 
parser  which  translates  the  traditional  external  represen- 
tations of  input  expressions  into  corresponding  internal 
representations  which  are  more  suitable  for  performing 
the  various  mathematical  transformations.  Similarly, 
each  of  these  systems  provides  an  output  deparser  which 


About  the  Author 

David  R  Stoutemyer  is  a  Professor  of  Electrical  Engineering  at  the 
University  of  Hawaii.  He  has  received  his  doctorate  in  Computer 
Science  from  Stanford  University,  with  specialization  in  numerical 
analysis.  His  current  research  interests  include  both  numerical  and  non- 
numerical  scientific  computation.  Current  educational  interests  include 
innovative  computer  aided  math  education  at  the  elementary  through 
college  level. 


176        August  1979  ©  BYTE  Publications  Inc 


AMERICAN  TAX  ASSOCIATES 

Alpha  Fedtax  and  Caltax 


^ 


years  in  use 


cro  systems 


sas^naBiia 


This  is  a  thoroughly  tested  and  successfully  installed  software  package.  It  is  very  user  oriented 
and  simple  to  use.  The  package  is  as  comprehensive  as  available  computer  tax  services.  It 
will  calculate  taxes,  prepare  and  print  all  forms. 

This  package  is  supported  by  American  Tax  Associates,  an  established  California  accounting 
firm.  In  this  way  you  can  be  assured  that  the  yearly  updates  will  be  consistent  with  the  current 
laws  and  accounting  practices. 

This  package  is  a  real  time  saver.  It  can  perform  income  averaging  automatically,  and  based 
on  the  data  input,  the  program  can  determine  whether  to  itemize  or  to  use  the  standard  de- 
duction. 

The  client  data  collection  and  input  procedures  were  selected  based  on  the  experiences  of 
American  Tax  Associates,  and  the  techniques  used  by  many  service  companies.  A  iimple 
form  is  completed  during  the  client  interview.  The  data  from  this  form  is  later  input  into  the 
computer  for  processing. 

When  the  client  data  is  entered  into  the  computer  you  may  select  to  have  it  print  an  audit  trail 
of  all  data  entered.  This  will  enable  you  to  double  check  the  data  entered. 

The  returns  are  printed  on  continuous  preprinted  IRS  approved  forms.  Those  forms  not  requir- 
ing a  preprinted  form  are  formulated  and  printed  on  blank  paper.  The  data  disk  will  hold  up  to 
120  clients  so  the  software  is  designed  to  print  all  of  one  page  at  a  time. 

The  Alpha  Micro  system  was  chosen  as  the  base  computer  system  because  of  its  multiuser 
capability,  high  throughput,  and  upward  expandability  into  a  hard  disk  system. 

Yearly  updates  will  be  supported  by  American  Tax  Associates.  These  updates  are  available 
from  eitheryourdealerordirectly  from  Mission  Control. 


SYSTEM  REQUIREMENTS: 

Language:  Alpha  Micro  Systems  Basic  (compiled) 

Media:  8"  floppy  diskette 

CPU:  Alpha  Micro  AM-100 

Memory:  64K  RAM 

Printer:  132  col  with  tractor  feed 

Floppy:  Dual  8"  drives  required 


Write  for  our  brochure  —  Dealerships  still  available 
Contact:  Distributor 


DISTRIBUTED  BY      |\/||SSIOI\l 

2008  WILSHIRE  BLVD.,  SANTA  MONICA,  CA  90403  •  (213)  829-5137  CONTROL 


Circle  238  on  inquiry  card. 


BYTE  August  1079         177 


translates  the  internal  representation  into  a  traditional 
mathematical  representation  for  display. 

In  addition  to  using  the  built-in  math  facilities  in  the 
symbolic  calculator  fashion  illustrated  above,  many  users 
want  to  eventually  extend  the  built-in  capabilities  by 
means  such  as  entering  appropriate  function  definitions. 
Since  most  users  of  these  systems  are  accustomed  to  a 
traditional  Von  Neumann  style  of  programming  lan- 
guage, rather  than  LISP,  the  parser  is  also  generally  used 
to  provide  users  with  a  surface  programming  language 
which  resembles  ALGOL  or  another  widely  acceptable 
syntax.  In  fact,  many  of  these  systems  provide  an  exten- 
dable parser-deparser,  so  that  the  user  can  introduce 
mathematical  operators  and  programming  syntax  to  suit 
personal  needs  and  tastes.  Such  functional  or  parser  ex- 
tensions can  be  freely  intermixed  with  calculations  utiliz- 
ing built-in  facilities  and  previous  extensions  so  that  the 
interaction  is  of  the  full  incremental  variety,  a  la  LISP 
and  APL,  rather  than  a  semi-interactive  style,  a  la 
BASIC. 

I  have  spent  many  fascinating  hours  using  the  four 
most  actively  supported  and  publicized  LISP  based 
systems  and  it  seems  likely  that  increasing  numbers  of 
students,  scientists,  engineers,  and  mathematicians  will 
want  an  opportunity  to  try  some  of  these  systems.  Conse- 
quently, the  following  four  sections  briefly  describe  some 
of  their  capabilities  and  their  availability,  in  order  of  in- 
creasing size.  In  the  interest  of  brevity,  each  section  em- 
phasizes features  not  described  in  previous  sections. 

As  with  many  other  LISP  programs,  these  computer 
algebra  systems  seem  almost  magical  when  first  en- 
countered. Thus,  it  is  especially  satisfying  and  educational 
to  learn  how  they  work.  Accordingly,  these  four  sections 
also  briefly  indicate  some  of  the  underlying  techniques, 
together  with  the  issues  that  they  address. 

Interest  in  computer  algebra  is  growing  rapidly,  and 
the  final  section  discusses  the  impact  that  this  powerful 
tool  can  have  on  education,  recreation,  and  research. 

muMath-79 

muMATH-79  is  a  small  computer-algebra  system  im- 
plemented by  Albert  Rich  and  the  author  for  Intel  8080 
based  microcomputers  using  the  popular  Digital  Research 
CP/M  operating  system.  The  system  will  also  run  on  the 
upward-compatible  Intel  8085  and  Zilog  Z-80  processors, 
and  upward-compatible  operating  systems  such  as  the 
Cromemco  CDOS  or  IMSAI-IMDOS  systems.  In  its  en- 
tirety, including  an  allowance  of  5.7  K  bytes  for  a  resi- 
dent operating  system,  the  system  occupies  28  K  bytes, 
for  which  an  additional  minimum  of  16  K  bytes  is  recom- 
mended to  store  the  control  stack,  the  symbol  table, 
character  strings,  numbers,  expressions,  and  user-defined 
functions.  The  system  is  modular  so  that  users  can  save 
space  by  omitting  unneeded  packages.  For  example,  the 
symbolic  integration,  differentiation,  logarithmic, 
trigonometric,  and  inverse  trigonometric  packages  can  be 
omitted  when  one  is  interested  only  in  algebra.  Similarly, 
the  algebra  and  rational  arithmetic  packages  can  also  be 
omitted  when  one  is  interested  only  in  exact  integer 
arithmetic.  Here  is  a  brief  summary  of  the  built-in 
facilities: 

•  The  system  provides  indefinite  precision  rational 


arithmetic,  including  integer  factorization  and 
simplification  of  fractional  powers.  For  example, 
the  system  can  perform  the  simplification: 

Vl8  -  Vs  _  J_ 

V6  V3 

where  —  denotes  is  transformed  to. 

•  Unavoidable  automatic  algebraic  simplifications  in- 
clude collection  of  similar  terms,  collection  of 
similar  factors,  reduction  of  integer  powers  of  the 
imaginary  number  i,  and  exploitation  of  the  identi- 
ty properties  of  0  and  1,  such  as: 

1*U-'U 

for  any  expression  u. 

•  Optional,  more  drastic  automatic  algebraic 
transformations  include  expansion  of  integer 
powers  of  sums,  expansion  of  products  of  sums, 
factoring  common  factors  from  all  the  terms  of  a 
sum,  placing  expressions  over  a  common  denom- 
inator, and  distribution  of  denominators  over  the 
terms  of  corresponding  numerators.  Optional 
transformations  are  controlled  by  the  values  of  a 
few  option  variables  so  that  users  can  employ  or 
suppress  these  more  drastic  transformations  to  suit 
their  needs  and  tastes  for  each  specific  problem. 
Unavoidable  and  optional  automatic  logarithmic 
transformations  include: 


:>'n(")    _ 


u. 


ln(e")  —  u, 

ln(u*v)  zr  ln(u)  -I-  ln(v), 

ln(u  t  v)  zi  v*ln(u), 

for  all  u  and  v. 

•  Unavoidable  and  optional  automatic  trigonometric 
transformations  include  exploitation  of  symmetry 
to  remove  minus  signs  from  trigonometric 
arguments,  exact  computation  for  angles  which  are 
integer  multiples  of  ir/12,  multiple  angle  expansion, 
angle-sum  expansion,  conversion  of  trigonometric 
powers  to  multiple  angles,  and  conversion  of  trigo- 
nometric products  to  angle  sums. 

•  Symbolic  differentiation  and  integration  rules  are 
built-in  for  all  of  the  built-in  mathematical 
operators  and  functions.  Also,  there  is  a  mechanism 
for  introducing  differentiation  and  integration  rules 
for  other  operators  and  functions  defined  by  the 
user. 

As  an  example  of  the  speed  of  muMATH,  on  an  8080 
running  at  2  MHz  with  48  K  bytes  the  system  can  expand 
298!,  (l-hx)",  sin(17x),  (xj-l-Xz-l- ... -|-x,3)^  or 
sin(xi-|-X2-t-...-l-X5)  in  one  minute.  Try  doing  these  by 
hand  I 

Because  of  the  incremental  expression-oriented  style,  a 
knowledge  of  computer  programming  is  unnecessary  for 
using  the  built-in  capabilities  of  muMATH  in  the 
symbolic-calculator  fashion.  When  a  user's  needs  are  not 
met  by  the  built-in  facilities,  they  can  be  modified  or  ex- 
tended by  entering  appropriate  function  definitions, 
simplification  rules,  or  operator  parse  rules.  The  built-in 


178        August  1979  ©  BYTE  Publications  Inc 


Expansive 
but  not  expensive 

MicroAge  introduces  for  Horizon 
and  Alpha  Micro  Systems,  the  most 
powerful  Hard  Disk  Units  You've 
Ever  Seen. 


Welcome  to  "Hard"  Times:  a  new 
age  of  hard  disk  cartridge  drives 
for  Horizon  and  Alpfia  Micro  . . . 
so  powerful,  so  reliable,  so 
economical,  you've  never  seen 
anything  like  it.  Fast,  easy  and 
versatile:  the  revolutionary  new 
Fujitsu  I\/I2201  with  40 
(formatted)  megabytes  of 
storage . . .  and  the  dynamic  CDC 
Phoenix  with  27  (formatted) 
megabytes.  Both  are  operated 
with  North  Star  and  Alpha  Micro 
commands.  Added  capacity 
means  the  ability  to  fully  utilize 
the  complete  range  of  software 
and  capabilities  of  North  Star 
Horizon  and  Alpha  Micro 
mainframes. 

But  their  family  interface 
compatibility  is  not  all  that's 
expansive.  Speed  and  economy 
are  impressive,  too.  Super-fast 
access  time  means  no  waiting  for 
command  execution  . . .  easy 
handling  of  large  files.  And  the 
price?  Unbelievably  low  for  this 
much  flexibility,  power,  speed 
and  capacity.  And  the  low  price 
includes  the  hard  disk  drive, 
S-100  controller,  software 
interface,  cords  and  disk  pack. 


Fujitsu  M2201  Cartridge 
Module  Drive 

50  megabyte  storage 
(40  formatted) 


Exclusively  from  MicroAge 


CDC  Phoenix  Cartridge 
Module  Drive 

32  megabyte  storage 
(27  formatted) 


Either. 

$9995.00 

includes  drive,  S-100  controller, 
software  interface  and  disk  pack. 


Askyourdealerabout  Hard  Times  — the  Fujitsu  M2201  and  CDC  Phoenix  drives  from  MicroAge.  Available  to 
qualified  dealers  and  OEM's.  If  a  dealer  is  not  available  in  your  area,  call  800-528-1415. 


Circle  212  on  inquiry  card. 


BYTE  August  1979         179 


Circle  366  on  inquiry  card. 


LIGHT  PEN  TRs  8o 


BYPASS  THE  KEYBOARD 
INTERACT  WITH  THE 
SCREEN  DIRECTLY 

APPLICATIONS: 

•  Education 

•  Business 

•  Games 

•  Home 


NO  ASSEMBLY  NECESSARY 
READY  TO  PLUG  IN 


COMPLETE  INSTRUCTIONS  AND 
DEMONSTRATION  PROGRAM  PROVIDED 


TRS-80  PEN  Includes 
Demo-Game  Cassette 


MAIL  COUPON  TODAY! 


30  DAY  UNCONDITIONAL 
MONEY  BACK  GUARANTEE! 


Please  send  me  a  3-G  Light  Pen.  I've  enclosed  a  check  or  money  order, 

I — I   TRS-80  I — I    PET  ADD  $1.50  FOR 

1 I    $34.95  I I   $29.95  MAILING  AND  HANDLING 


($6.00  FOREIGN) 


NAME 


ADDRESS 
CITY   .      _ 


gp^    3G  Company,  Inc.,  Depl.BT 
13 1    Rl.  3,  Box  28A 


Gaston,  OR  97119 


HOW  TO  BUY 
A  BUSINESS 
COMPUTER 

WHEN  TO  BUY  •  WHEN  NOT  TO  BUY 

HOW  TO  CHOOSE  CONSULTANTS  "DATA 

GATHERING  •  PACKAGED  VS  CUSTOM 

SOFTWARE  •CONTRACTS  •FINANCING 

•  WARRANTEES  AND  MAINTENANCE  •INSTALLATION 

MANAGEMENT  AND  MUCH  MORE 

"SUPER  BOOK!"  DP  Consultant,  Mercer  Island,  Washington. 
"I  wish  I'd  had  this  book  before  I  bought  my  computer!"TV 
Station  General  Manager,  California. 

"It's  the  best  book  I've  seen  on  the  subject.  Send  me  5  copies 
to  send  to  my  clients:"  CPA,  Orange  County,  California. 
"I  really  learned  something  from  this  book  and  I'm  in  the 
business.  I'm  recommending  it  to  my  clients."  DP  Consultant, 
Alhambra,  California. 

Here's  a  straight  forward  approach  to  business  computer 
purchase  and  installation.  It  will  save  you  time  and  money. 
ORDER  NOW!  If  not  completely  satisfied,  return  within  30 
days  for  a  full  and  immediate  refund. 

872  X  11  Softbound   ■  178  pp.    ■  $12.95 
Credit  Card  Orders  1-805-964-7448 


DDC  PUBLICATIONS  b 

5386  Hollister  Ave.,  Santa  Barbara,  CA  93111 

Rush copies  of  "Winning  The  Computer  Game"  at  $1 2.95 

per  copy.  (CA  residents  add  6%  sales  tax) 

NAME 

ADDRESS 

CI  T  Y/STATE/Zl  P, 

D Check 
Card  No 


DMasterCharge 


DVisa 
Exp.  Date 


mathematical  algorithms  are  written  in  the  same  general 
environment  and  high-level  syntax  provided  to  the  user. 
Consequently,  the  user  does  not  need  to  master  a  second 
underlying  environment  and  syntax,  such  as  LISP,  in 
order  to  understand  the  system  and  fully  integrate  his  ex- 
tensions into  the  system. 

As  an  example  of  a  functional  extension,  suppose  that 
we  wish  to  introduce  the  trigonometric  cosecant  function 
named  CSC,  together  with  the  automatic  transformation: 

CSC(u)  -  l/SIN(u) 

for  any  expression  u.  To  accomplish  this,  we  merely  enter 
the  definition; 

FUNCTION  CSC(U), 

1/SIN(U), 
ENDFUN; 

Thereafter,  until  the  function  is  redefined,  the  above 
transformation  will  automatically  occur  for  the  CSC  of 
any  expression. 

Now,  suppose  that  as  the  sole  exception  to  the  above 
transformation,  we  wish  to  introduce  the  transformation: 

CSC(O)  -  UNDEFINED 

where  UNDEFINED  is  a  variable.  To  accomplish  this,  we 
merely  enter  the  new  definition: 

FUNCTION  CSC(U), 

WHEN  U=0,  UNDEFINED  EXIT, 

1/SIN(V) 

ENDFUN; 

As  illustrated  by  these  two  examples: 

•  The  body  of  a  function  definition  consists  of  a  se- 
quence of  expressions  separated  by  commas. 

•  The  value  returned  when  a  function  definition  is  ap- 
plied to  its  arguments  is  the  value  of  the  last  expres- 
sion evaluated  therein. 

•  A  conditional  exit  expression  consists  of  the  match- 
fix  operator  named  WHEN,  followed  by  one  or 
more  expressions  separated  by  commas,  followed 
by  the  matching  delimiter  named  EXIT. 

•  The  value  of  a  conditional  exit  is  that  of  the  last  ex- 
pression evaluated  therein  when  the  conditional  exit 
is  evaluated. 

•  If  the  first  expression  in  a  conditional  exit  evaluates 
to  FALSE,  then  the  exit  fails  and  evaluation  pro- 
ceeds to  any  successive  expression  following  the 
conditional  exit. 

•  For  a  successful  exit,  proceeding  sequentially  from 
the  nonFALSE  expression,  when  evaluation  first 
reaches  an  EXIT  delimiter  it  proceeds  to  the  point 
following  the  next  ENDFUN,  ENDLOOP,  or  END- 
BLOCK  delimiter. 

To  illustrate  the  LOOP  construct,  suppose  that  we 
wish  to  define  a  function  which  uses  repeated  first 
derivatives  to  compute  the  Nth  partial  derivative  of  an 
expression  EXPN  with  respect  to  a  variable  VAR,  for  any 
specific  integer  N>0.  We  could  do  so  as  follows: 


180        Aususl  1979  'tj  BYTE  Publications  Inc 


Circle  89  on  inquiry  card. 


FUNCTION  DIFN(EXPN,  VAR,  N), 
LOOP 

EXPN^DIF(EXPN,  VAR), 

WHENN  =  1,  EXPNEXIT, 

N-N-l 

ENDLOOP 
ENDFUN; 

As  illustrated  by  this  example: 

•  A  loop-expression  consists  of  the  matchfix  operator 
named  LOOP,  followed  by  zero  or  more  expres- 
sions separated  by  commas,  followed  by  the 
matching  delimiter  named  ENDLOOP. 

•  Even  an  assignment  is  an  expression,  having  as  its 
value  the  value  assigned. 

•  A  loop  can  contain  any  number  of  conditional  exits 
anywhere  in  the  loop,  thus  providing  a  single  struc- 
tured generalization  of  the  REPEAT,  WHILE,  and 
half  loop  constructs  of  some  languages. 

Moreover,  when  a  function  definition  is  applied  to  fewer 
arguments  than  there  are  parameters,  the  extra  para- 
meters are  initialized  to  FALSE  and  they  are  available  for 
use  as  local  variables  within  the  definition. 
An  alternative  recursive  definition  of  DIFN  is: 

FUNCTION  DIFN(EXPN,  VAR,  N), 
WHENN  =  0,  EXPNEXIT, 
DIFN(DIF(EXPN,  VAR),  VAR,  N-1) 
ENDFUN; 

As  is  frequently  the  case,  the  recursive  version  is  more 
compact,  and  compactness  is  important  on  small  com- 
puters. 

The  block  control-construct  consists  of  the  matchfix 
operator  named  BLOCK,  followed  by  a  conditional  exit, 
then  zero  or  more  arbitrary  expressions,  then  the  mat- 
ching delimiter  named  ENDBLOCK.  The  value  of  a  block 
is  the  value  of  the  last  expression  evaluated  therein.  A 
block  can  contain  any  number  of  conditional  exits  in- 
terspersed among  other  expressions,  thus  providing  a 
structured  generalization  of  the  case-statement  of  some 
other  languages,  including  the  IF-THEN-ELSE  construct 
as  a  special  instance. 

Some  users  may  want  to  extend  the  syntax  by  in- 
troducing additional  mathematical  operators  or  addi- 
tional programming  control-constructs.  The 
incrementally-extendable  Pratt  parser  makes  it  easy  to  in- 
troduce such  extensions  as  they  are  needed. 

Every  operator  can  have  a  left  and  a  right  binding 
power.  For  example,  the  left  and  right  binding  powers  of 
/  are  120,  whereas  t  has  a  left  binding  power  of  140  and  a 
right  binding  power  of  139.  When  two  operators  are 
competing  for  an  operand  between  them,  the  operator 
with  higher  binding  power  toward  the  operand  wins  the 
operand  (eg:  the  expression  X/Yt2  is  parsed  the  same  as 
X/(Yt2)  rather  than  (X/Y)t2).  When  there  is  a  tie,  the 
operator  on  the  left  wins  the  operand  (eg:  X/Y/2  is  pars- 
ed the  same  as  (X/Y)/2  rather  than  X/(Y/2  ). 

Prefix  operators  precede  their  operands.  For  example, 
to  establish  COS  as  a  prefix  operator  so  that  we  can  omit 
parentheses  from  around  suitable  arguments  of  COS,  we 
can  enter  the  command; 


Circle  331  on  inquiry  card. 


16K  STATIC  RAM 


with 
$275     450  ns 
$300      250  ns 
memory  chips 


Assembled,  Tested  and  Guaranteed 


Static  TMS  4044  or  equivalent  -  Fully  Static  4Kx1  Memory  Chips 
for  full  DMA  capability,  no  tricky  timing  problems. 

Fully  S-100  Bus  Compatible  -  All  lines  fully  buffered.  Dip  Switch 
Addressable  in  two  8  K  block,  4K  increments.  Write  Protectable 
in  2  blocks,  Memory  Disable  using  Phantom,  Battery  back  up 
capability. 

Bank  Select  -  Using  output  port  40H  (Cromemco  software 
compatiblej-addressable  to  512KB  of  Ram  for  time  share  or 
Memory  Overlap,  also  has  alternate  ports  80  H,  COH. 

Guaranteed  -  Parts  and  labor  for  one  year.  You  may  return  the 
undamaged  board  within  10  days  for  a  full  refund. 

Orders  -  You  may  phone  for  Visa,  MC,  COD  ($4  handling  charges 
for  COD)  orders.  Personal  checks  must  clear  prior  to  shipping. 
Shipping-Stock  to  72  hours  normally.  Will  notify  expected 
shipping  date  for  delay  beyond  this.  Illinois  residents  add  5% 
tax.  Please  include  phone  number  with  order. 


S.C  digital 


P.O.  Box  906  Phone: 

Aurora,  I L  60507    (312)897-7749 


NO  FRILLS!  NO  GIMMICKS!  JUST  GREAT 

DISCOUNTS 

MAIL  ORDER  ONLY 


HAZELTINE 

1400 $  679.00 

1500 995.00 

Mod  1  1495.00 

CENTRONICS 

779-1    954.00 

779-2   1051.00 

700-2   1350.00 

761  KSR  tractor 1595.00 

703  tractor 2195.00 

NORTHSTAR 
Horizon  I  assembled. .   1629.00 

kit 1339.00 

Horizon  II  assembled. .   1999.00 

kit 1599.00 

Disk  System 589.00 

TELETYPE 

Mod  43 995.00 

IMS 
16K  Static  Memory.  . .     459.95 


DIGITAL  SYSTEMS 

Computer $4345.00 

Double  Density 
Dual  Drive 2433.00 

IMSAI 

VDP  80/1000 $5895.00 

VDP40 3795.00 

VDP  42 3895.00 

VDP44 4195.00 

16K  Memory  assem...  399.00 

PCS  80/15 679.00 

15%  ofl  on  all  other  Imsai  proOucIs 

CROMEMCO 

System  III  $1000  off  ..   4990.00 

10%  off  on  al)  other  Cromemco  products 

TEXAS  INSTRUMENTS 

810  Printer 1595.00 

CENTRONICS 

Microprinter 495.00 


Most  items  in  stock  for  immediate  delivery.  Factory-fresh,  sealed  cartons. 

DATA  DISCOUNT  CENTER  po  box  100 

135-53  Northern  Blvd.,  Flushing,  New  York  11354, 212/465-6609 

N.Y.S.  residents  add  appropriate  Sales  Tax.  Shipping  FOB  N.Y. 
I  BankAmericard,  Master  Charge  add  3%.  COD  orders  require  25%  deposit. 


Circle  91  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        181 


PROPERTY  COS  PREFIX  170. 

Then,  COS  X/Y  parses  the  same  as  COS(X)/Y,  because 
170  exceeds  120.  Alternatively,  we  could  enter  the  com- 
mand: 

PROPERTY  COS  PREFIX  119 
if  we  wished  COS  X/Y  to  parse  the  same  as  COS  (X/Y). 

Postfix  operators  follow  their  operand,  infix  operators 
lie  between  their  operands,  and  matchfix  operators  (such 
as  LOOP)  precede  an  arbitrary  number  of  operands 
separated  by  commas  and  delimited  by  a  matching 
delimiter  (such  as  ENDLOOP).  Numbers  and  variable 
names  parse  as  themselves.  A  functional  expression 
parses  into  a  list  containing  the  function  name  followed 
by  the  parsed  representations  of  its  arguments.  An  opera- 
tional expression  parses  into  a  list  containing  the  name  of 
the  operator  followed  by  the  parsed  representations  of  its 
operand.  As  an  example,  COS(2/N!)  parses  into  the 
nested  list  (COS,(/,2,(!,N))). 

In  general,  this  representation  is  called  Cambridge 
prefix  (as  opposed  to  Polish  prefix  or  ordinary  functional 
prefix).  We  are  all  so  accustomed  to  infix  notation  that 
most  people  find  mathematical  Cambridge  prefix 
tiresome  to  read,  and  many  people  also  find  it  tiresome  to 
write.  However,  the  parser  prevents  us  from  having  to 
write  Cambridge  prefix,  and  the  deparser  prevents  us 
from  having  to  read  it,  in  order  to  enjoy  its  great  advan- 
tages as  an  internal  representation.  These  advantages  are 
many. 

In  order  for  our  programs  to  determine  simply  and 


quickly  which  transformations  to  apply  to  expressions, 
the  programs  must  be  able  to  easily  determine  whether 
the  expressions  are  numbers,  variables,  or  more  general. 
If  the  latter,  the  program  must  be  able  to  easily  determine 
the  outermost  operator  or  function  name,  and  easily  ac- 
cess the  individual  associated  operands  or  arguments.  Tc 
keep  the  transformation  programs  fast  and  compact,  the 
syntactic    rules   governing    the   internal   representation 
should  be  few  and  simple.  Moreover,  it  is  sometimes  con- 
venient to  regard  expressions  as  data  in  order  to  apply 
transformations  to  them.  At  other  times  it  is  convenient 
to  regard  expressions  as  programs  in  order  to  execute 
them.  Cambridge  prefix  offers  all  of  these  advantages. 

For  each  cycle  of  interaction,  after  parsing  the  input  ex- 
pression, muMATH  merely  applies  the  built-in  LISP  like 
EVAL  function,  then  deparses  the  result  for  output.  For 
computer-algebra  it  is  appropriate  for  such  an  EVAL 
function  to  at  least  do  the  following: 

•  Evaluate  numbers  and  unbound  variables  as 
themselves. 

•  Evaluate  bound  variables  as  the  values  to  which 
they  are  bound. 

•  Evaluate  a  list  for  which  the  first  element  is  the 
name  of  a  function  definition  as  the  value  obtained 
by  applying  the  function  definition  to  the  values  of 
the  other  elements  in  the  list. 

•  Otherwise,  the  value  of  a  list  is  the  list  of  its  values. 

Unfortunately,  most  LISP  EVAL  functions  implement 
only  a  subset  of  these  rules,  leaving  undefined  the  result 


Household  Finance  I  &  II    $15  00 

I'.Hl  1.  Inpuls  diil.i  1)11  cull  housrholtl  i'X|)cndiluir;  iisis,  .iclii^.  upiLilcs, 
I ii.miii's  (ir  di'k'Ic's  iircviDiibly  liipul  ili^nis.  Wnli's  diilii  lo  cissiMli'  l.ipc. 
I'.irl   II:   RiMcIs  diilii   l,ipt'.   Provides  niciiillily  .iiid  yciuly  siiiiiiii.trics  (il 

JniiiMi  i<il  d.il.i,  smytc  tiiU'f^oty  siininuiru's.  .md  jii.iplis  .t  spciidiii*!  piolilc. 


Seawolf 


Uu'  ships  wilh  y( 
pcdn  ijun;  I'xU'ii 
scunnu,  I  Iscs  |(n.' 


$10.00        Life 


Creative  Softivare  products  are  now 
available  at  these  fine  dealers: 


\'C  Comiiuli'i 

Cnmpulei   hdiiini 

Gprmanv 

llllfih  S.ui  I'.iliKi  Aw. 

14(),S2  H.  l-iresKiiie  Hlud, 

Hol.Mker  Ve 

I„.( 

I.l  Ccnilci,  Cilildinici 

S.inle  |-e  Siiriniis,  C'.ililciri 

1.1     leiiernseerst 
I)H1.'.I)II<.I.<I 

iissr   IS 

in  hen 

h.iincu  Miller's 

M.irin  Conipulei  C'eiilei 

Mimi  lien.  W 

'Sl    C  in  IIMM 

L'.!2  K,  M.iiii  Si. 
I.eNin.jliin.  KenliK  ky 

70  Skyview  "lerrdc  e 
S.in  H.il.iel.  C.ililoriiia 

France 

Cnnipuler  Slin|)pe 
,i225  n.uiiiy  Pk. 
MeUiirie,  l.niiisiiin.i 

Olson  Eleetronics 
Sherwood  Pl.iz.i  Kle.  9 
N.iliik,  M.iss.ii  husells 

S.!.V.i:.A. 
20  nie  ik'  Le 
/.SOOH  P.iiis. 

iiiu^.ul 

Mi'iiiiiry  H.iiik  Inc. 
■1 12K  Br.idy  Si . 

Conipulerl.ind 
'IS'lbhl  Ciniino  He,.l 

Austria 

BYTHCoini 
1040  Wieii 

ulri  Shop 

D.ivenpnri .  it)W(i 

Los  Alios.  C.ilil(iriii,i 

Fiivontensti. 

ssc  20.   Alls 

Oy/V  M.iny   other    Creative    Software   iirnclmls,   iiickiflinij   smijle 

.ind  cIli<iI  joysliiks.  ,ire  .iv.iil.ihk'  kir  ihc  PET  II  your  locil  ck'iiler 
clrii'sii'l  c.irrv  Creative  Software  prciducls  or  |iro.cir,ini  inlor 

'  niiiiuin,   write  directly   lo  the  .iddress   helow.  When  pliuini)  .in 

■'''il.ni  order  pkMse  note: 

sh.isse  IS 

|,^|<in  hen  Add  $1  ..Sll  shipping  lor  e,u  h  pioiir.im  ordered.  C.ililorni.i  residents 

West  cleiiiMiiv  .idd  6",,  s.ik's  t.i.x.  VISA  MASTHHCHARCiH  .iccepted.  Inckide 
card  nunilier  ,ind  I'Miir.ition  d.ite. 


Creative  Software 

P.O.  BOX  4030,  MOUNTAIN  VIEW,  CA  94040 


Model  DMB-6400  Series  dynamic  64l(  byte  RAfAS  incorporate  the 
features  wliich  are  standard  in  the  DM-6400  Series  and  adds  the 
following  capabilities: 


•  ALPHA  MICRO,  CROMEMCO, 
and  NORTH  STAR  output  port 
bank  select  compatible. 

•  Four  (4)  16k  byte,  functionally 
independent  memory  banks. 


Memory  bank  size  can  be  incre- 
mented to  64k  bytes  in  16k 
increments. 

Eight  (8)  64k  byte  banks  of  mem- 
ory per  output  port. 


Model  DM-6400  Series  dynamic  64k  memory  boards  feature  IEEE 
S-100  compatible  timing  and  on  board  transparent  refresh. 

•  Memory  selectable  and  deselec-  •  25  MHz  on  board  crystal  oscillator 

table  in  4k  byte  increments.  for  independent  timing. 

DMB-6400  and  DM-6400  Common  Features: 


4  MHz  Z80  operation  with  no  wait 

states. 

Tested  and  bumed-in. 


•  Low  power-  8  watts  maximum. 

•  Reliable,  expandable  memories. 


ONE  YEAR  GUARANTEE 


THE  FOLLOWING   PRODUCTS  ARE  AVAILABLE    FROM  YOUR  LOCAL  DEALER. 


D  DMB-6400/64KRAM 
D  DMB-4800/48KRAM 


D  DMB-3200/32KRAM 
D  DMB-1600/16KRAM 


D  DM-6400/64KRAM 
D  DM-4800/48KRAM 


D  DM-3200/32KRAM 
D  DM-1600/16KRAM 


U.K.  &  EUROPEAN  REPRESENTATIVE: 

ABACUS  COMPUTERS  LTD 
62.  NEW  CAVENDISH  STREET 
LONDON,  W1M  7LD  U.K. 
TEL:  01-580/8841  TELEX:  881-3085 

AUSTRALIAN  REPRESENTATIVE: 

COMPUTERLAND  OF  MELBOURNE 
555  COLLINS  STREET 
MELBOURNE.  VIC3000 
TEL:  625581 


MEASUREMENT 

systems  &v  controls 

Incorporated 

867  North  Main  Street  •  Orange,  CA  92668 
Telephone:  714/633-4460 


Circle  215  on  inquiry  card. 


BYTE  August  1979 


183 


Circle  310  on  inquiry  card. 


TRS-80    lEVlL     II     AND     DOS 


COMMAND  PROCESSOR  XOMPROC  ***NEW  PRODUCT*** 

Automatically  load  and  execute  any  sequence  of  System  and/or 

BASIC  programs  and  data  from  power  up. 

Command  files  created,  saved,  and  edited  in  BASIC. 

Sophisticated  options  include  interactive  prompting  and  substitutional 

parameters.  Allows  non-computer  personnel  to  easily  execute  programs. 
RENUMBER  WITH  'REMODEL'  ■  MERGE  WITH  'PROLOAD' 


REnumber  any  section  or  an  entire  program. 
MOve  program  segments.  DELete  program  lines. 
All  line  references  readjusted  as  required. 
COMBINE  programs  with  renumber  and  merge. 
LOAD  or  SAVE  any  portion  of  program  from  tape. 
GENERAL  SUBROUTINE  FACILITIES  'GSF 


Collection  of  fast  easy-to-use  machine  language  routines. 

IN-MEMORY  SORT  with  multiple  variables  and  keys. 

SORT  1000  -  Element  array  in  9  seconds. 

ARRAY  read/write  to  tape,  compress/uncompress/move  data. 

SCREEN  scrolling,  save  screen  displays,  and  more 

DISK  SORT  PROGRAM  'DOSORT' 

SORT/MERGE  multi-diskette  sequential  files. 

MULTIPLE  variables  and  keys.  User  input/output  sort  exits. 

Includes  GSF  machine  language  in-memory  sort,  etc.  32  or  4BK. 

COPY  SYSTEM  TAPES  WITH  'COPSYS' 

Dealer  Inquiries  Invited 


REMODEL 

REMODEL  -<-  PROLOAD 

GENERAL  SUBROUTINE  FACILITIES 

DISK  SORT  PROGRAM 

Must  specify  16,  32,  or  4BK  on  above. 

COMMAND  PROCESSOR  (DOS  ONLY) 

COPSYS  (Not  DOS) 

For  TAPES  that  TEST  best 


l-RACET 


COMPUTES  -g 

702  Palmdale.  Orange  CA  92665 


Order  TS21D  at  $24.95 
Order  TS22D  at  $34.95 
Order  TS25D  at  $24.95 
Order  TS26D  at  $34.95 
System  house  discounts. 
Order  TS27D  at  $19.95 
Order  TS24D  at  $14.95 
Order  10  ea  at  $14.95 

Check.  UISA.  M/C.  C.O.O. 

Calil.  residents  add  G% 
637-50 


ITMIM^OIB 


A  specially  designed  SF  TACTICAL  BATTLE  GAME  for 
your  PET,  TRS-80  or  APPLE  Computer. 

The  man  called  Sudden  Smith  watched  the  five  blips  on 
his  screen  spread  out  to  meet  the  enemy.  Two  freighters 
converted  into  something  like  battiewagons,  powerful 
but  slow,  and  three  real  cruisers:  the  most  powerful  group 
of  warships  ever  seen  near  the  Promethean  system  —  except 
for  the  Stellar  Union  fleet  opposing  them.  Everyone  was 
calling  it  Starfleet  Orion,  though  it  existed  for  only  this 
day.  It  was  life  or  death,  and,  after  the  object  lesson  on 
the  planet  Spring,  everyone  knew  it. 

STARFLEET  ORION  is  a  complete  2  player  game  system 

•  rule  book  •    battle  manual  •  cassette 

•  ship  control  stieets       •    program  listings 

Includes  2  programs,  22  space  ship  types,  and  12  playtested 
scenarios.  Game  mechanics  are  extremely  simple,  but  play 
is  exciting,  challenging,  and  rich  in  detail.  Specify  PET  (8K), 
TRS-80  (Level  II,  16K),  or  APPLE  II  (16K&  32K)  $19.95. 

Ask  your  local  dealer  or  send  your  check  to: 

Automated  Simulations 
Department  Y 
P.O.  Box  4232 
Mountain  View,  CA.  94040 

California  residents  please  add  6%  sales  tax 


of  applying  EVAL  to  an  unbound  variable  or  a  list  whose 
first  element  is  not  the  name  of  a  function  definition.  In 
computer  algebra,  no  one  would  want  to  quote  every  in- 
stance of  every  unbound  variable.  It  is  often  desirable  to 
write  subexpressions  such  as  f(x),  even  though  there  is  no 
corresponding  function  definition  named  /.  Accordingly, 
most  LISP  based  algebra  systems  begin  by  defining  an 
algebraic  EVAL  function  in  terms  of  the  built-in  LISP 
EVAL  function. 

Since  muMATH  is  intended  for  microcomputers,  we 
did  not  want  to  waste  precious  space  on  two  near- 
duplicate  EVAL  functions  so  we  included  the  above 
upward-compatible  generalizations  of  the  usual  LISP 
EVAL  in  one  EVAL.  These  generalizations  are  convenient 
in  other  LISP  applications,  so  we  would  like  to  see  LISP 
evolve  in  this  direction. 

The  lexical  and  syntactic  rules  appropriate  for  input 
and  output  of  LISP  and  computer-algebra  expressions 
also  differ.  Many  LISP  implementations  do  not  directly 
accept  special  characters  such  as  +  as  valid  names,  and 
LISP  scanners  do  not  distinguish  between  blanks  and 
commas.  Again,  we  did  not  want  to  waste  precious  space 
on  two  sets  of  I/O  (input/output)  routines,  one  of  which 
would  never  be  employed  by  users  of  the  computer- 
algebra  system.  Accordingly,  using  assembly  language, 
two  semantically  similar  but  lexically  and  syntactically 
different  general-purpose  list-processing  systems  were 
implemented:  muLISP-77  which  implements  the  tradi- 
tional LISP  lexical  and  syntatic  rules,  and  muSIMP-77 
which  employs  the  lexical  rules  and  high-level  syntax  il- 
lustrated in  the  preceding  examples.  We  used  muSIMP-77 
to  implement  muMATH-79,  but  muSIMP -77,  being  a  dis- 
guised version  of  LISP,  is  applicable  wherever  LISP  is  ap- 
plicable. We  think  that  beginners  are  more  comfortable 
with  muSIMP  than  with  LISP,  hence  they  are  more  will- 
ing to  learn  the  lovely  semantics  of  LISP,  and  to  ultimate- 
ly appreciate  the  Spartan  syntactic  simplicity  of  LISP, 
together  with  its  consistency  between  program  and  data. 

To  illustrate  the  convenience  of  Cambridge  prefix  as  an 
internal  representation,  here  is  an  example  of  how  dif- 
ferentiation could  have  been  implemented  in  muMATH: 

FUNCTION  DIF(EXPN,  VAR), 
WHEN  EXPN=VAR,  1  EXIT, 
WHEN  ATOM(VAR),  0  EXIT, 
WHEN  FIRST(EXPN  ='  +  , 

DIF(SECOND(EXPN),VAR) 
-i- 

DIF(THIRD(EXPN),VAR) 
EXIT, 
WHEN  FIRST(EXPN)=  '*  ...  EXIT, 


WHEN  FIRST(EXPN )  =  LN, 

DIF(SECOND(EXPN),VAR) 

/SECOND(EXPN) 

EXIT, 

LIST(DIF,EXPN,VAR) 

ENDFUN; 

The  built-in  function  named  ATOM  returns  TRUE  if 
its  argument  is  a  number  or  a  name.  The  built-in  func- 


184 


August  1979  'i'  BYTi;  Publicalions  Inc 


Circle  18  on  inquiry  card. 


Circle  289  on  inquiry  card. 


tions  named  FIRST,  SECOND,  and  THIRD,  respectively, 
return  the  indicated  elements  of  the  list  which  is  their 
argument.  The  function  named  LIST  takes  any  number  of 
arguments  returning  a  list  of  their  values.  As  indicated,  a 
single  quote  is  used  in  contexts  where  one  wishes  to  pre- 
vent the  parser  from  seeking  operands  for  a  name  which 
happens  to  be  an  operator. 

In  simplified  results  the  operators  +  and  *  have  two  or 
more  operands  which  have  been  sorted  into  a  lexical 
order  to  facilitate  collection  of  similar  terms  and  factors. 
Consequently  the  above  example  would  have  to  use  a 
loop  or  recursion  to  march  down  the  list  of  operands  of 
+  . 

For  modularity  and  other  reasons,  differentiation  and 
most  other  mathematical  transformations  are  im- 
plemented with  the  aid  of  a  sort  of  pattern  matcher.  The 
following  sections  illustrate  pattern-matching  techniques. 

Reduce 

REDUCE  is  a  LISP  based  computer-algebra  system  im- 
plemented by  Anthony  Hearn  and  his  colleagues  for  a 
variety  of  large  computers.  Currently  there  are  supported 
implementations  for  the  PDP-10,  PDP-20,  IBM360, 
IBM370,  Univac  1108,  CDC  Cyber,  and  Cray-1 
machines,  running  under  various  popular  operating 
systems.  In  its  entirety,  the  system  occupies  about  400  K 
bytes  on  an  1BM370,  for  which  an  additional  minimum  of 
at  least  50  K  bytes  is  recommended  as  workspace.  The 
system  is  modular  so  that  users  can  save  space  by  omit- 
ting unneeded  packages  (eg:  100  K  bytes  can  be  saved  by 
omitting  the  integrator).  For  those  who  have  access  to  the 
ARPA  computer  network,  REDUCE  is  available  at 
several  sites,  including  USC-ECL  and  SU-AI,  where  ac- 
counts may  be  obtainable.  REDUCE  is  also  directly 
available  on  magnetic  tape  from  Professor  Hearn  at  the 
University  of  Utah  Computer  Science  Department  in  Salt 
Lake  City  for  $100.  It  has  been  distributed  to  over  500 
sites  worldwide.  Here  is  a  brief  summary  of  the  built-in 
facilities: 

•  The  system  provides  single-precision  floating-point 
arithmetic  as  well  as  indefinite-precision  rational 
arithmetic. 

•  Unavoidable  algebraic  transformations  and  op- 
tional ones  controlled  by  flags  are  approximately 
similar  to  those  of  muMATH,  except  that  REDUCE 
provides  an  important  additional  optional  transfor- 
mation: cancellation  of  polynomial  greatest 
divisors  from  the  numerators  and  denominators  of 
rational  expressions.  REDUCE  can  perform  such 
simplifications  as  the  following: 

2a^x^  —  a^bx  —  a^b^  —  ax^  -I-  axb^  —  x''  -I-  bx^       2ax  -I-  ab  4-  x^ 


a^x^  —  a^b  —  ax^  —  2axb  —  ab^  —  bx^  +  b^x 


a-l-b 


which    might    be    overlooked    by    most    people. 

•  There  are  some  built-in  exponential,  logarithmic 
and  trigonometric  simplifications. 

•  Matrices  having  symbolic  expressions  as  elements 
can  be  added,  subtracted,  multiplied,  divided  and 
raised    to    integer    powers,     including    inversion 

•  There  are  special  facilities  for  solving  the  quan- 
tumelectrodynamics  problems  of  the  high-energy 
physics. 


EPROM   PROGRAMMER  —  Model  EP-2A-79 


SOFTWARE  AVAILABLE  FOR  F-8,  8080,  6800,  8085,  Z-80,  6502,  KIM- 
1,  1802,  2650. 

EPROM  type  is  selected  by  a  personality  module  which  plugs  into 
the  front  of  the  programmer.  Power  requirements  are  115  VAC, 
50/60  HZ  at  15  watts.  It  is  supplied  with  a  36  inch  ribbon  cable  for 
connecting  to  microcomputer.  Requires  V/i  I/O  ports.  Priced  at 
$155  with  one  set  of  software.  Personality  modules  are  shown 
below. 


Part  No. 

Programs 

Price 

PM-0 

TM5  2708 

$15.00 

PM-1 

2704, 2708 

15.00 

PM-2 

2732 

30.00 

PM-3 

TMS  2716 

15.00 

PM-4 

TMS  2532 

30.00 

PM-5 

TMS  2516,2716, 

2758 

15.00 

Optimal  Technology,  Inc. 

Blue  Wood  127,  Earlysville,  VA  22936 
Phone  (804)  973-5482 


List 


CROMEMCO  20%  DISCOUNT 

System  1 1 1  5990 

System  II  3990 

System  1 1  with  1 0  Meg  Disk  9995 

16K  Ram  595 
NORTH  STAR  16%  DISCOUNT  (or  more) 

Horizon  I  -  32K  Ram  asm  2099 

Horizon  I  -  16K  Ram  asm  1899 

Horizon  I -32K  Ram  kit  1849 

Horizon  I  to  Horizon  2  450 

32K  Ram  asm  659 

VECTOR  GRAPHICS  20%  DISCOUNT 

Vector  MZ-2  (630K  disk)  48K  Ram  3750 

Soroc  IQ120  995 

Perkin  Elmer  Bantam  CRT  996 

Intertube  II  995 

LA-36  1630 

Integral  Data  IP125  799 

Escon  Selectric  Interface  496 

NEC  5510  RO  Word  Processor  Printer  2900 

IMSAI  15% 

Radio  Shack  5% 

Professional  A/R,  A/P,  Ledger,  Payroll,  Medical  Billing 
Available,  We  discount  TRS  80  Software,  Microage 

and  Structured  Systems  Software.  Most  Hardware  items 

Send  for  our  catalog  —  Some  prices  too  low  to  quote. 


Our  Price 

4792 

3192 

7996 

480 

1763 

1595 

1553 

378 

525 

3000 
790 
750 
750 

1440 
699 
422 

2450 
off 
off 

Software 
Software 
in  stock. 


SARA  TECH 
COMPUTERS 

P.  0.  Box  692 
400  Base 
Venice,  FL 
33595 
(813)485-3559 


Circle  320  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        185 


•  There  is  a  high-level  surface  programming 
language,  which  is  essentially  ALGOL,  sweetened 
by  modern  control  constructs  such  as  a  WHILE 
loop,     REPEAT    loop,     and    CASE    statement. 

•  Symbolic  differentiation  and  integration  are  built- 
in,  and  the  latter  is  significantly  more  powerful  than 
the  muMATH  integrator,  which  merely  uses  a  few 
elementary  rules  such  as: 


|(u4-v)dx  —  judx  +  Jvdx, 
Jc  u  dx  —  cju  dx  if  c  =  constant, 
Jvf(u)dx  -  -;^^  Jf(u)du  if 
jx"'  -'  In  x, 


y _ 


constant. 


(x°  —  — —   if  a  =  const  and  =^  —1, 


|sin(x)dx  —  cos(x). 


In  contrast,  extensive  greatest-common-divisor, 
factorization,  and  linear-equation-solving  support 
routines  permit  REDUCE  to  use  the  powerful  new 
Risch-Norman  integration  algorithm.  For  a  large 
class  of  integrands  and  solution  basis  functions,  this 
algorithm  is  guaranteed  to  determine  a  closed-form 


solution  if  one  exists,  otherwise  terminating  with  a 
guarantee  that  one  does  not  exist. 
•  REDUCE  provides  a  convenient  pattern  matcher, 
which  provides  a  natural  means  for  users  to  imple- 
ment many  extensions.  To  have  the  system 
automatically  replace  every  subsequent  instance  of 
mc^  by  E,  we  can  merely  enter  the  rule: 

LETM*C**2  =  E; 

Thereafter,  an  expression  such  as  5*M*C**3-l-8  would 
be  replaced  automatically  by  5*E*C-|-8.  There  is  also  a 
mechanism  for  letting  pattern  variables  represent  ar- 
bitrary subexpressions.  To  make  logarithms  of  all 
powers,  products  and  quotients  can  be  expanded 
automatically,  we  can  enter  the  rules: 

FOR  ALL  X,  Y  LET 

LOG  (X**Y)  =  Y*LOG(X), 
LOG(X*Y)  =  LOG(X)  +  LOG(Y), 
LOG(X/Y)  =  LOG(X)  -  LOG(Y); 

Thereafter  an  expression  such  as  A-l-2*  LOG(B)  — 
LOG(E**A*B**2*C)  would  simplify  to  -LOG(C).  Final- 
ly, there  is  a  mechanism  for  imposing  extra  prerequisites 
to  replacements.  To  make  the  above  LOG  rules  depen- 
dent upon  the  value  of  an  option  variable,  we  could 
change  the  first  line  to: 

FOR  ALL  X,Y  SUCH  THAT  LOGEXPAND  >  0 


New  North  Star  Software 


•  DOS-h  $35 

Enables  any  program  to  execute  all  North  Star 
Disk  and/or  Meca  Tape  commands.  Allows 
batch  command  list  and  more. 

•  PRO-TYPE  WORD  PROCESSOR      $75 
Easy  to  learn.  Combines  text  input,  editing  and 
printing  in  one  program.  Features  right  margin 
justification,  tabs,  paging,  underlining, 
relocation  of  text  blocks,  etc.  Requires  only  8K 
of  memory.  Manual  alone,  $25. 

•GUIDE  TO  BASEX  $33 

A  new  interactive  compiler  similar  to  BASIC 
for  8080-type  microcomputers  (Z-80, 8085 ). 
Executes  programs  up  to  10  times  faster  than 
equivalent  programs  while  requiring  about  half 
the  memory  space.  Features  include:  array 
variables;  string  manipulation;  arithmetic 
operations  on  signed  16  bit  intergers;  and 
versatile  I/O  communication  functions. 
Manual  alone  $8. 

•  BASEX  TAPE  and  DISK  GUIDE        $35 
Allows  your  BASEX  programs  to  access  up  to 
four  North  Star  Disk  and/or  Meca  Tape  drives. 
All  operations  can  be  executed  from  the 
keyboard.  Manual  alone  320.00. 

Specify: 

North  Star  Disk/Meca  Tape/Other 
Send  for  Free  Literature 
INTERACTIVE  MICROWARE  INC. 
P.O.  Box  771  -ffVl. 

State  College,  PA  1 680 1       ■  ■  ■  ■  I 

(814)  238-8294     lUjl 


186        August  1979  ©  BYTE  Publications  Inc 


Circle  179  on  inquiry  card. 


Most  of  REDUCE  is  written  in  a  modular  subset  of 
itself  called  RLISP.  In  turn,  RLISP  is  bootstrapped  from 
standard  LISP,  which  is  a  subset  of  many  LISP  implemen- 
tations. RLISP  has  the  semantics  of  LISP  clothed  in  the 
syntax  of  sweetened  ALGOL.  RLISP  is  applicable  not  on- 
ly to  computer  algebra,  but  also  wherever  LISP  is  ap- 
plicable, and  I  have  found  students  far  more  receptive  to 
LISP  if  they  are  introduced  to  it  via  a  surface  language 
such  as  RLISP. 

REDUCE  was  originally  inspired  by  a  desire  to  perform 
symbolic  high-energy-physics  computations  which  are 
far  too  arduous  to  do  manually.  Consequently,  the  inter- 
nal representations  of  expressions  reflect  a  major  concern 
with  speed  and  storage  efficiency  for  large  expressions: 

•  In  applied  math,  the  most  numerous  operations  in 
very  large  expressions  are  usually  addition,  subtrac- 
tion, multiplication,  and  exponentiation  with 
positive  integer  exponents.  There  is  frequently,  at 
most,  one  division  operation  present,  because  ex- 
pressions are  often  put  over  a  common 
denominator.  If  fractional  powers,  exponentials, 
logarithms,  trigonometric  functions  or  other  irra- 
tional operations  occur,  they  may  usually  be  reduc- 
ed to  numerous  repetitions  of  a  few  unnested 
distinct  irrational  functions  having  trivial 
arguments  such  as  x,  x-Hy  or  2vx.  Thus, 
polynomial  operations  account  for  most  of  the  time 
and  space.  This  suggests  using  a  data  structure 
oriented  toward  polynomials,  thereby  saving  space 


and  time  by  making  the  operators  + ,  x  ,  and  t  im- 
plicit. This  usual  nature  of  large  expressions  also 
suggests  storing  irrational  subexpressions  uniquely, 
and  treating  them  as  additional  variables  with 
respect  to  any  polynomial  operations  involving 
them. 

•  As  the  number  of  variables  and  their  maximum 
degrees  increase,  a  multivariate  polynomial  must 
have  zero  as  a  sharply  increasing  portion  of  its 
possible  terms,  in  order  to  fit  the  polynomial  into 
the  computer  memory.  Moreover,  the  fit  is  possible 
only  if  the  internal  representation  takes  advantage 
of  this  sparsity.  In  general,  we  can  avoid  wasting 
space  on  intermediate-degree  terms  which  are  zero 
only  if  we  explicitly  store  the  exponents  of  the 
nonzero  terms. 

•  Many  multivariate  polynomial  algorithms  are  most 
concisely  stated  as  univariate  algorithms,  recursive- 
ly involving  coefficients  which  are  polynomials  in 
at  least  one  less  variable. 

•  Classic  multivariate  polynomial  division  requires 
that  one  variable  be  distinguished  as  the  leading 
variable  and  that  the  terms  be  accessible  in  decreas- 
ing order  of  degree. 

REDUCE  uses  Cambridge  prefix  for  some  purposes, 
but  REDUCE  internally  represents  polynomials  in  a  stan- 
dard form.  A  standard  form  is  defined  as  an  element  from 
the  underlying  coefficient  domain  or  as  a  leading  term 
dotted  with  a  reductum,  where  the  latter  is  recursively 


The 


%9  l\#\^         .ELECTRONICS 

An  S-100  Bus  Adapter/Motherboard 

fortheTRS-80 

plus  a  whole  lot  more!!! 


'  s-100  BUS  INTERFACE 
'  6  SLOT  MOTHERBOARD 


■rht  fllOO  iilbws  H  Radio  Shack  TUS-SO  oinnpuUT  K)  bt 
rnturTact-d  lo  ihv  popular  S-IM  Bub  for  tni-mory  CKpanaion 
Hnd  cxlfndeil  LO  cnpabiliLJEs.  For  cxHmple,  you  cnn  now 
ponily  add  more  memory,  floppy  di«  ByHi^mn,  PROM 
boHrdK.  piinlcr  inlerfHces.  mulli-puiposc  I/O  bonrdH,  AC 
device  control !ers.  and  a  whole  host  of  other  varinl  perlph- 

Thc  RLOU  hilH  lis  own  built-in  d  HJot  mothcrbonrd  wliich 
includen  our  uniiiuc  card  guide  Bynt^in  which  kcepH  the 
borirdH  in  their  ptaces. 

The  SlIXJ  hofl  support  circuitry  nnd  Mickcta  for  ii>\thl 
IfiK  dynamic  RAM  chips  allowing  you  lu  expand  the  mi^m- 
ury  of  jour  THS.SO  hy  IfiK  without  having  to  buy  any  S 100 
KAM  boanU. 


•  SERIAL  RS232/20ma  I/O 

•  PARALLEL  INPUT  AND  OUTPUT 

•  SPACE  FOR  16K  DYNAMIC  RAM 

•  CAN  USE  LEFT  OVER  4K  CHIPS 

•  LOW  COST-  PRICES  START  AT  S185* 

•  AVAILABLE  IMMEDIATELY 


Ifyou  purchased  an  cxpanaion  memory  kit  forTRS-MJ 
you  could  be  left  with  eight  4K  RAM  chip/and  nowhere  1o 
put  Ihcm!  W:ll.  they  can  go  in  the  RAM  sockets  instead! 
That's  ri|;hl.  you  can  use  either  4K  or  16K  chips  and  nd- 
drctu)  them  anywhere  you  like. 

The  8100  has  a  full  BS232/20  mo  aerial  interface  who's 
fealuroH  include:  RS232  and  20  ma  current  loop  intt^rfacc, 
Hoflwarc  programmable  baud  ratt  from  DC  to  fiGK  baud. 
aofXwure  proKfammable  modem  control  linen,  on  hoard 
DI)-25  connector  and  much  more. 

The  8100  also  has  an  8  bit  parallel  input  port  nnd 
an  B  bit  parallel  output  port.  Both  are  lalchHi.  have  both 
positive  and  negative  strobe  inputs  and  outputs  and  have 
plenty  of  drive  capability. 


PRICES  STAHT  AS  LOW  AS  $185*  (S-100  BUS  INTERFACE  ONLY) 


RuhI 

S  ELECTRONICS 


1429  Maple  St. 

San  Mateo,  CA 

94402 

(415)  573-7359 


CALL  OR  WRITE  FOR  COMPLETE  PRICING 
INFORMATION  AND  MORE  DETAILS 
THE  8100  IS  AVAILABLE  FROM  LEADING 
COMPUTER  DEALERS  OR  FACTORY  DIRECT 

DEALER  INQUIRIES  INVITEO 

5,  RAM  support. 


•Extra  S-100  k 
I/O  a'cu  1 1  ry  optional 
USA  DOMESTIC  PRICE  ONLY 


fiyHl'"™MINI-8100 

■  r.  r«'rn«...A«  AM    (S-inO    Rl  IC 


!  ELECTRONICS  AN  S-100  BUS 

■  tLttlHUNlt^  ADAPTER/MOTHERBOARD 

FOR  THE  TRS-80* 


MINI-SIZE! 


MINI-PRICE! 


but  MAXI-PERFORMANCE! 


HUH  Elccironics*  81(H)  is  the  csiablished 
leader  in  S-IOOTRS-KO  interfaces,  running  re- 
liably since  November  1978  and  giving  you 
■he  mosi  features  for  your  dollar.  But  soine 
folks  don'l  ncciJ  all  the  8]00's  versatility  or 
want  something  more  comp.ict. 


So  we  created  the  MINI-SIOO.  The  MINI- 
81D0  has  the  same  proven  reliable  S-100  Bus 
interface  circuitry  as  it's  big  brother  coupled 
with  a  4  slot  shielded  motherboard.  It  con- 
nects to  the  TRS-80  or  to  the  expansion  inter- 


face and  opens  up  the  vast  world  of  S-100  Bus 
products  to  the  TRS-KO  owner. 

For  those  of  you  who  already  own  an  S-100 
mainframe  or  motherboard,  the  MINI-SIOO 
may  be  purchased  without  the  built-in 
motherboard.  (MIM-8IO0S).  Just  plug  it  in 
and  go! 

The  MINI-SIOO  has  the  same  high  quality  as 
all  HUH  Electronics  products — easy  assem- 
bly, fully  socketed,  solder  mask  and  silk 
screen  component  legend,  comprehensive 
manual  and  design  excellence  thai  speaks  for 
itself. 


PRICES 

MINI-8100  KIT               -  includes  all  pads  and  one  S-100  connector  -  $115 

MINI-SIOO  ASM              -  assembled  and  tested,  includes  four  S-100  connectors  -  $155 

MINI.8I00S  KIT               •  SIOO  sized  board,  plugs  into  mainframe  -  $  95 

MIM-8I00S  ASM            -  same  as  above,  but  assembled  and  tested  -  $125 


:  ELECTRONICS 


1429  Maple  St. 

San  Mateo,  CA 

94402 

(415)  573-7359 


ORDERING  INFO:  The  MINI-81M  is  availa- 
ble  from  leading  computer  dealers  or  facIor> 
direct.  Please  include  S4  Tor  shipping  and 
handling.  CA  residents  include  6^  sales  tax. 
We  accept  VISA  or  Maslercharge  or  we  can 
ship  COD. 

USA  DOMESTIC  PRICES  ONLY. 


•TRS-80  is  a  Radio  Shack*-  produci 


DEALER  INQUIRIES  INVrTED 


Circle  168  on  inquiry  card. 


Circle  169  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        187 


Circle  95  on  inquiry  card. 


CP/M 


LOW-COST 

MICROCOMPUTER 

SOFTWARE 

CP/M®  OPERATING  SYSTEM: 

•  Includes  Editor,  Assembler,  Debugger  and  Utilities. 

•  Standard  version  for  8080,  Z80,  or  Intel  MDS 
(other  versions  available.) 

•  For  IBM-compatible  floppy  discs. 

•  $100-Diskette  and  Documentation. 

•  S25-Documentation  (Set  of  6  manuals)  only. 
MAC"^  MACRO  ASSEMBLER: 

•  Compatible  with  new  Intel  macro  standard. 

•  Complete  guide  to  macro  applications. 

•  S90-Diskette  and  Manual. 
SID™  SYMBOLIC  DEBUGGER: 

•  Symbolic  memory  reference. 

•  Built-in  assembler/disassembler. 

•  S75-Diskette  and  Manual. 
TEX™  TEXT  FORMATTER: 

•  Powerful  text  formatting  capabilities. 

•  Text  prepared  using  CP/M  Editor. 

•  S75-Diskette  and  Manual. 
DESPOOL™: 

•  Background  print  utility. 

•  Use  with  CP/M  (version  1 .4) 

•  $50.  Diskette  and  Manual. 


01  DJGJTflJ.  RESEARCH" 


P.O.  Box  579  •  Pacific  Grove,  California  93950 
(408)  649-3896 


TRS-80  SOFTWARE 
32K  with  2  DISK  DRIVES 

PAYROLL  SYSTEM $235 

Includes:     a)  File  Maintenance 

b)  Payday  Entries 

c)  Earnings  Record 

d)  Payroll  Register 

e)  Write  Pay  Checks 

f)  Write  Other  Checks 

Handles  up  to  300  employees  per  diskette. 
Automatically  calculates  PICA,  FED.  TAX, 
UNEMPLOYMENT  and  much  more. 

ALSO  AVAILABLE 

ACCOUNTS  RECEIVABLE $1 95 

ACCOUNTS  PAYABLE $1 95 

INVENTORY  CONTROL  with 

BILLING  &  ACCT'S  REC $550 

MANUALS   $29.95/ea. 

CUSTOM  PROGRAMS  &  OTHERS 

CAI 

1st  Security  Bank  BIdg. 

3306  W.  Walnut,  Suite  507 

Garland,  TX  75042 

PHONE:  (214)  272-3211 

With  money  order  or  certified  check,  orders  shipped  within 

24  liours. 


defined  as  a  standard  form  of  lower  degree  in  the  main 
variable  of  the  leading  term.  The  underlying  coefficient 
domain  can  be  indefinite-precision  integers,  indefinite- 
precision  rational  numbers,  integers  modulo  some 
modulus,  or  single-precision  floating-point  numbers.  A 
leading  term  is  defined  as  a  leading  power  dotted  with  a 
leading  coefficient,  where  the  latter  is  recursively  defined 
as  a  standard  form  not  containing  the  main  variable  of 
the  leading  power.  A  leading  power  is  defined  as  the  main 
variable  dotted  with  the  leading  degree,  where  the  latter 
is  a  positive  integer.  In  Backus-Naur  form,  we  can  sum- 
marize this  definition  as  follows: 

standard  form  : :  =  domain  element 

: :  =  LT  standard  form.  +  RED  standard  form 
RED  standard  form  : :  =  standard  form 
LT  standard  form 

::  =  LPOW  standard  form  .*  LC  standard  form 
LC  standard  form  ::  =  standard  form 
LPOW  standard  form 
::  =  MVAR  standard  form.**  LDEG  standard  form 

I  have  also  taken  the  opportunity  to  introduce  the 
REDUCE  infix  constructor  macros  named  .+,  .*,  .**, 
which  clearly  indicate  the  implied  operator,  but  are  all 
defined  as  merely  the  LISP  CONS  operation.  Similarly,  I 
have  introduced  the  mnemonic  prefix  REDUCE  prefix 
selector  macros  named  LT,  RED,  LPOW,  LC,  MVAR, 
and  LDEG,  which  are  respectively  defined  as  the  LISP 
functions  CAR,  CDR,  CAAR,  CDAR,  CAAR,  and 
CDAAR. 

With  this  representation  and  macros,  the  REDUCE 
multivariate  polynomial  addition  function  definition  is 
extraordinarily  compact  and  elegant  —  an  ideal  in- 
termediate level  example  of  reductum  recurso.  Listing  1 
below  shows  this  reduce  function,  expressed  in  RLISP. 

SYMBOLIC  PROCEDURE  ADDF(U,V); 
IF  ADDITIVEIDENTITY  U  THEN  V 
ELSE  IF  ADDITIVEIDENTITY  V  THEN  U       ' 
ELSE  IF  DOMAINP  U  THEN  ADDD(U,V) 
ELSE  IF  DOMAINP  V  THEN  ADDD(V,U) 
ELSE  IF  LPOW  U  =  LPOW  V  THEN 

ADDFF(ADDF(LC  U,  LC  V), 

ADDF(RED  U,  RED  V  )) 
ELSE  IF  ORDPP(LPOW  U,  LPOW  V)  THEN 

LT  U  .  -h  ADDF(RED  U,  V) 
ELSE  LT  V  .  -K  ADDF(U,  RED  V); 

SYMBOLIC  PROCEDURE  ADDD(D,V) 
IF  ADDITIVEIDENTITY  V  THEN  D 
ELSE  IF  DOMAINP  V  THEN  ADDDM(D,V) 
ELSE  LT  V  .  -h  ADDD(D,  RED  V); 

SYMBOLIC  PROCEDURE  ADDFF(F1,  F2); 
IF  ADDITIVEIDENTITY  Fl  THEN  F2 
ELSE  IF  ADDITIVEIDENTITY  F2  THEN  Fl 
ELSE  LPOW  U  .*  Fl  .-F  F2; 

In  listing  1,  use  has  been  made  of  the  ADDITIVE- 
IDENTITY prefix  recognizer  macro  which  tests  for  a 
zero,  the  DOMAINP  prefix  recognizer  macro  which  tests 


188        August  1979  ©  BYTE  Publications  Inc 


Circle  198  on  inquiry-card. 


for  the  underlying  coefficient  domain,  the  ORDPP 
predicate  which  tests  the  relative  order  of  two  leading 
powers,  and  the  ADDDM  function  which  adds  domain 
elements.  Since  the  syntax  is  essentially  ALGOL,  for 
which  descriptions  are  widely  available,  we  leave  the 
serious  reader  to  ponder  this  example,  moving  on  now  to 
another  computer  algebra  system. 

MACSYMA 

MACSYMA  is  a  very  large  computer-algebra  system 
implemented  by  the  Mathlab  group  at  the  MIT 
Laboratory  for  Computer  Science  in  Cambridge  MA. 
The  system  will  probably  be  made  available  for  DEC 
PDP-10  computers  in  a  year  or  two. 

In  its  entirety,  excluding  the  library  of  user-submitted 
routines,  MACSYMA  occupies  400,000  36  bit  words  on 
the  PDP-10.  The  system  is  modular,  starting  with  a 
nucleus  of  100,000  words.  As  is  perhaps  implied  by  its 
name,  MACSYMA  provides  more  built-in  math  opera- 
tions than  any  other  computer-algebra  system.  Here  are 
some  highlights; 

•  The  system  provides  arbitrary-precision  floating- 
point as  well  as  indefinite-precision  arithmetic. 

•  Besides  the  usual  unavoidable  algebraic  transforma- 
tions, there  are  numerous  optional  automatic  ones 
controlled  by  flags  or  which  are  employed  by  ap- 
plying specific  functions  to  expressions.  The  most 
sophisticated  of  these  transformations  include 
cancellation  of  polynomial  greatest  common 
divisors,  partial-fraction  decomposition,  nested 
polynomial  decomposition  such  as  completion  of 
powers,  and  factorization.  For  example,  MAC- 
SYMA can  perform  the  factorization: 


Sw^z"  +  Iw'z"  +  lUxy^z'  -  lOw^y^z^  + 
ASw^x^z^  —  Sw^z^  -t-  76wxy^z  -  2w^z  -  SSOxy" 
1710xV'  +  lOw^y^  -  45w^x^  - 
(3z^  -I-  2wz  -  lOy^  -I-  45x^)(w^y3  -|-  38xy^  -  w 


+ 


•  There  are  numerous  built-in  transformations  for 
fractional  powers,  exponentials,  logarithms, 
trigonometric  functions,  inverse  trigonometric 
functions,  hyperbolic  functions,  and  inverse  hyper- 
bolic functions.  There  are  also  transformations  for 
some  higher  transcendental  functions  such  as  the  er- 
ror, gamma,  beta,  zeta,  and  psi  functions. 

•  There  is  built-in  matrix  algebra  on  matrices  having 
unspecified  elements  and  unspecified  size. 

•  There  are  special  facilities  for  series  analysis  of 
periodic  phenomena  such  as  orbits. 

•  There  is  a  high-level  surface  programming  language 
which  resembles  ALGOL,  with  evidence  of  meta- 
LISP  influence. 

•  There  is  a  powerful  pattern-matching  facility  and 
an  extendable  Pratt  parser. 

•  Symbolic  differentiation  and  integration  are  built- 
in.  The  latter  employs  a  powerful  Risch  algorithm, 
among  other  techniques.  There  is  also  a  distinct 
program  for  definite  integrals,  which  employs  con- 
tour integration  and  other  techniques  besides  in- 
definite integration. 


Circle  378  on  inquiry  card. 


Expand  yourTRS-80. 

Save  $10a 

Meet  the  Vista  V80  Mini  Disk  System.  The  perfect  way 
to  upgrade  yourTRS-80*  system.  Inexpensively. 
(Our  $395.00  price  is  about  $1 00.00  less  than  the 
manufacturer's  equivalent.)  Here's  how  it  can  help  you. 

23%  more  storage  capacity.  Useable  storage 

capacity  is  increased  from  55,000  to  65,000  bytes  on 

drive  one. 

8  times  faster.  Wlnile  electronically  equal  to  the  TRS- 

80  Mini-Disk  system,  track-to-track  access  is  5ms 

versus  40ms  for  the  TRS-80. 

Better  warranty.  The  V80  carries  a  1 20  day  warranty  - 

longer  than  any  comparable  unit  warranty  available. 

The  Vista  V80  Mini  Disk  System  comes  complete  with 
Minifloppy  disk  drive,  power  supply,  regulator  board 
and  case.  And  it's  ready  to  run  -  simply  take  it  out  of  the 
box,  plug  it  in  and  you're  ready  to  go. 

Vista 

1 320  East  St.  Andrews  Place,  Suite  I 

Santa  Ana,  California  92705 

(714)558-8813 

At  Vista,  we  mean  business. 

*TRS-80  ©Tandy  Corp. 


the  ULTIMATE  in 
CHEAP  VIDEO 

BOOK  &  KIT 
ONLY  $42.95 


Don  Lancaster's  "Cheap  Video"concept  allows  almost 
unlimited  options,  including: 

*  Scrolling  ■  Full  performance  cursor. 

*  Line/Character  formats  of  16/32,  24/80,  32/64.... 
or  almost  anything. 

*  Graphics -up  to  256  X  256  B&W;  96  X  128  COLOR 

(requires  low-cost  option  modules  D 

*  Works  with  6502  ,  6800  and  other  micros. 

SPECIAL  OFFER:    Buy  the  Kit  Cupper  case  alpha- 
numeric option  included  D  &  get  the  Book  at  1/2   price. 

.ELECTRONICS,  DEPT.8-B,  1020W.WILSHIRE  BLVD..  OKLAHOMA  CITY.  0X73116 


I'm  Sold,  PLEASE  RUSH C  D  SEND  FREE  CATALOG 

C  D  TVT-e  5/8  Kit  &  Cheap  Video  Cookbook  -  $42.95  (enclosed) 
C  )  TVT-65/8  Kit  only  Cbook  required  for  assemblyj -$39.95 


address:, 
city: 


.  state: 


zip: 


ELECTRONICS    DEPT.S-B,      1020  W.WILSHIRE  BLVD..  OKLAHOMA  CITY.  OK  73116 


Circle  297  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        189 


Circle  327  on  inquiry  card. 


6800  DEVELOPMENT  SOFTWARE 

An  integrated  applications  development  and  execution  system. 

SDOS 

All  devices  interrupt-driven  including  typehead.  Provides 
device  independent,  byte  addressable  random  files.  Supports 
any  mixture  of  floppy  or  hard  disk  drives  up  to  2.5  billion  bytes. 
Sector  read-ahead  and  buffer  pool  enhance  application  perfor- 
mance. Flexible:  Currently  runs  on  7  manufacturers'  systems, 
using  10  different  drive/controllers,  including  mini-floppies  and 
hard  disk. 

BASIC  COMPILER 

For  speedy  business  applications.  10  digit  BCD;  random  access 
to  variable  size  records;  long  variable  names;  formatted  out- 
put; if-then-else;  error  trapping.  Field  proven  for  over  2  years. 

EDIT 

A  powerful  text  editor  with  change,  delete,  replace  commands. 
Automatic  display  of  modification  or  context  changes;  macro 
facilities  for  complex  or  repetitive  editing. 

ASM 

2  pass  conditional  assembler;  32  character  labels;  symbol  table 
dump  and  cross-reference;  error  cross-reference;  extensive 
arithmetic  and  listing  control. 

IDB 

Single-step,  multiple,  real  time  breakpoints;  memory  dump; 
multiple  display  modes.  No  special  hardware  needed. 

Over  500  pages  of  documentation  to  match  this  proven  soft- 
ware. 

Complete  package:  $760.00 

Also  (not  including  SDOS)  available  for  SWTP,  Exerciser,  SSB 
and  MSI   DOS. 

Write  tor  free  catalogue.  Sizable  distributor  discour^ts. 
SOFTWARE  DYNAMICS 

2111  W.  Crescent  Avenue,  Suite  C 

Anaheim,  CA  92804 

(714)635-4760 


.  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001 
§  ^ 

CM  ^ 

^    Programmer's  Guides    ^ 
§  for  the  PET"  i 

»  g 


Tl  S 


WORKBOOKS  FOR  THE  COMMODORE  PET  2001 
Gening  Started  with  Your  PET  WB-1  $4.00 

Covers  the  fundamentals  of  PET  BASIC:  calculator 
and  program  mode,  data  input  and  output,  data 
representation,  program  storage  on  the  cassette. 

PET  String  and  Array  Handling  WB-2  $3.95 

Covers  string  and  substring  search,  concatenation, 
replacement  and  manipulation. 
PET  Graphic!  WB-3  $4.95 

Covers  use  of  cursor  controi  and  special  graphics 
symbols  to  draw  plots,  histograms,  and  sketches. 
PET  CasteHe  I/O  WB-4  $4.95 

Covers  OPEN,  CLOSE,  string  and  numeric  data  files. 
Mitcellaneout  PET  Fealuraa  WB-5  $3.95 

Covers  the  clock,  random  number  generator,  upper 
and  lowercase  alphabetic  characters,  saving  memory 
space,  etc. 

PET  Control  and  Logic  WB-6  $3.95 

Covers  IF,  GOSUB,  logical  operations,  and  ON  X. 

Add  $1.50  for  shipping  and  handling. 


Dealer 

Inquiries 

Invited 


TIS 

P.O.  Box  921 

Lo«  Alamot,  NM  87544 


Money  back  guarantee  k 

We  also  sell  PET  Software.  Write  for  details.  ', 

§  I 

J!            PET  is  a  trademark  of  Commodore  Business  Machines  ► 

lU  c 

o-  ; 

•  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001  •  PET  2001 


•  There  is  a  powerful  function  which  employs 
L'Hospital's  rule  and  other  techniques  to  computer 
limits. 

•  There  are  powerful  functions  for  determining  in- 
finite and  truncated  generalized  power-series  expan- 
sions of  expressions. 

•  Laplace  transforms  and  their  inverses  are  built-in. 

•  There  is  a  function  which  uses  a  variety  of  tech- 
niques to  seek  closed-form  solutions  to  first-order 
and  second-order  ordinary  differential  equations. 

•  There  is  a  built-in  function  which  uses  the  powerful 
new  Gosper  algorithm  to  find  closed  forms  for  sums 
with  indefinite  or  infinite  summations  limits.  For 
example,  the  function  is  able  to  make  the  transfor- 
mation: 


n  j^ 

Ll  (2J) 

j  =  0  1 


2(n-H)(63n''-|-112n^-fl8n^-22n-H3)4"  _    2 
6  93('„")  231 


•  Equations  are  legitimate  expressions.  Two  equa- 
tions or  an  equation  and  a  nonequation  can  be  ad- 
ded, multiplied,  etc,  and  there  is  a  powerful  func- 
tion named  SOLVE  which  uses  a  variety  of  tech- 
niques to  seek  solutions  to  one  or  more 
simultaneous  linear  or  nonlinear  equations.  SOLVE 
is  able  to  determine,  as  exact  symbolic  expressions 
involving  c,  the  four  values  of  x  which  satisfy  the 
quartic  equation: 

x*  =  ex  -I-  1. 

As  another  example,  SOLVE  is  able  to  determine 
that  the  exact  solutions  for  the  two  simultaneous 
nonlinear  equations: 

z"  -I-  x^z^  -I-  xz^  -I-  y^  -I-  x^  =  2yz^  +  x^y  -I-  xy, 
yz^  +  2xyz  +  xy  =  2xz^  -I-  2x^z  -|-  y^, 

are  the  curve  (x  =  r,  y  =  s^  z  =  r)  together  with  the 
surface  (x=r,  y  =  s^  +  r,  z  =  s),  where  r  and  s  are  ar- 
bitrary parameters. 

•  There  is  an  extensive  user-contributed  program 
library  which  includes  packages  for  vector  and  ten- 
sor analyses,  ordinary  and  variational  optimiza- 
tion, solution  of  integral  equations,  higher 
transcendental  functions,  and  dimensional  analysis. 

Most  of  MACSYMA  is  written  in  MACLISP,  which  is 
a  particularly  elaborate  version  of  LISP  also  developed  at 
MIT.  MACSYMA  uses  several  internal  representations, 
including  Cambridge  prefix  and  a  recursive  polynomial 
representation  somewhat  like  that  of  REDUCE.  The  ma- 
jor difference  from  the  REDUCE  polynomial  representa- 
tion is  that  in  MACSYMA  the  variables  are  also  implicit 
and  stored  separately,  only  once  per  complete 
polynomial.  This  usually  saves  additional  space  in  the  ex- 
pressions. Although  the  resulting  algorithms  are 
somewhat  faster  when  combining  polynomials  having 
the  same  variables,  there  is  some  awkwardness  or 
overhead  involved  in  a  preliminary  padding  phase  when 
combining  polynomials  that  do  not  have  identical 
variables. 


190        August  1979  ©  BYTE  Publications  Inc 


Circle  370  on  inquiry  card. 


SCRATCHPAD 

SCRATCHPAD  is  a  very  large  computer-algebra 
system  implemented  at  the  IBM  Thomas  J  Watson 
Research  Center.  It  is  available  there  on  an  IBM  370,  and 
it  is  available  from  other  IBM  corporate  sites  via 
telephone.  Regrettably,  this  fine  system  has  not  yet  been 
released  to  the  public,  but  it  is  discussed  here  because  of 
its  novel  features. 

In  its  entirety,  the  system  occupies  about  1600  K  bytes 
on  an  IBM  370  with  virtual  storage,  for  which  an  addi- 
tional minimum  of  100  K  bytes  is  recommended  for 
workspace.  The  variety  of  built-in  transformations  cur- 
rently lies  between  that  of  REDUCE  and  MACSYMA. 
However,  each  of  the  three  systems  has  features  that 
none  of  the  others  possess,  and  one  of  these  features  may 
be  a  decisive  advantage  for  a  particular  application.  Here 
are  some  highlights  of  the  SCRATCHPAD  system: 

•  The  system  provides  single-precision  floating-point 
arithmetic  as  well  as  indefinite-precision  rational 
arithmetic. 

•  The  built-in  unavoidable  and  optional  algebraic 
transformations  are  approximately  similar  to  those 
of  MACSYMA. 

•  The  built-in  exponential,  logarithmic,  and 
trigonometric  transformations  are  approximately 
similar  to  those  of  REDUCE. 

•  Besides  built-in  symbolic  matrix  algebra,  APL  like 
array  operations  are  included,  and  they  are  even 
further  generalized  to  permit  symbolic  operations 


of  nonhomogeneous  arrays  and  on  arrays  of  in- 
definite or  infinite  size. 

•  Symbolic  differentiation  and  integration  are  built- 
in,  with  the  latter  employing  the  powerful  Risch- 
Norman  algorithm. 

•  There  is  a  particularly  elegant  built-in  facility  for 
determining  Taylor  series  expansions. 

•  There  is  a  built-in  SOLVE  function  capable  of  deter- 
mining the  exact  solution  to  a  system  of  linear  equa- 
tions. 

•  There  is  a  powerful  pattern-matching  facility  which 
serves  as  the  primary  mechanism  for  user  level  ex- 
tensions. The  associated  syntax  is  at  a  very  high 
level,  being  the  closest  of  all  computer-algebra 
systems  to  the  declarative,  nonprocedural  notation 
of  mathematics.  To  implement  the  trigonometric 
multiple-angle  expansions,  we  can  merely  enter  the 
rewrite  rules: 

cos(n*x)  =  2*cos(x)*cos((n  — l)*x)  — 

cos((n  — 2)*x),  n  in  (2,3, . . .),  x  arb 
sin(n*x)  =  2*cos(x)*sin((n  — l)*x)  — 

sin((n  — 2)*x),  n  in  (2,3,.  .  .),  x  arb 

Then,  whenever  we  subsequently  enter  an  expres- 
sion such  as  cos(4*b),  the  response  will  be  a  cor- 
responding expanded  expression  such  as: 

8  cos^(B)  -  8  cos^(B)  -I-  1 


Omikron  tiransfonns  TRS-80* 
into  a  powerful  business  system. 


STANDARD  DRIVES  8"  Drives  give  you  5 
times  the  speed  and  3  times  the  storage  of 
your  mini  drives!  Our  system  provides  a 
standard  Shugart  interface  so  you  can  use 
either  your  8"  drives  or  ours.  Omikron 
drives  are  enclosed  in  an  attractive  metal 
cabinet,  and  include  a  power  supply. 

SOFTWARE  CP/M*  is  the  most  popular 
operating  system  for  microcomputers.  But 
many  high-level  languages  and  advanced 
business  programs  cannot  run  with  the 
special  CP/M*  designed  exclusively  for  the 
TRS-SO?  The  Omikron  MAPPER  with 
standard  CP/M*  allows  you  to  expand  your 
software  capability  to  go  beyond  the  few 
available  TRS-80*  compatible  packages. 
TRS-80*  with  MAPPER 
out-performs  systems 
costing  $1000 
more! 


The  MAPPER  I  and  MAPPER  II  are  plug- 
in  modules.  They  don't  require  any  circuit 
changes,  are  easy  to  install,  and  they  don't 
interfere  with  the  normal  operation  of  your 
TRS-SOf  Ail  your  original  software,  includ- 
ing Level  III  BASIC  will  still  run  properly. 
Omikron  products  require  16K  L II  BASIC 
and  the  TRS-80*  Expansion  Interface. 

•  •         • 

MAPPER  I  is  a  memory  management  unit 
which  adapts  your  TRS-80*  to  run  stan- 
dard CP/M?  Versions  for  both  5"  and  8" 
drives  are  available.  The  package  includes 
CP/M*  software  on  5"  or  8"  diskette,  and 
documentation.  5"  unit,  $169.  8"  unit,  with 
adapter  cable,  $199. 


MAPPER  II  includes  the  MAPPER  I  pack- 
age plus  a  disk  adapter  module  which 
allows  both  5"  and  8"  drives  to  run  on  the 
same  cable.  Drive  selection  is  under  soft- 
ware control  to  permit  easy  file  transfer 
between  the  drives.  With  cable,  $249. 
CONVERSION  -If  you  purchase  MAP- 
PER I  or  II  and  plan  to  use  only  mini- 
drives,  Omikron  will  transfer  CP/M*  files 
from  8"  diskette  to  a  5."  This  allows  you  to 
run  software  previously  available  to  only 
8"  drive  owners.  $25  per  mini-diskette. 
DRIVE  -  8"  drive,  $849.  Additional  drive, 
$695.  WARRANTY-  1  year  on  boards; 
90  days  on  drives.  VISA/MasterCharge 
accepted.  Prepaid  orders  given  top  priority. 

*CP/MisaTMofDigital 

Research.  TRS-80  is 

a  TM  of  Tandy 

Corporation. 


Circle  287  on  inquiry  card. 


August  1979  ©  BYTE  Publicalions  Inc        191 


Thus,  programs  resemble  a  collection  of  math  for- 
mulae much  as  they  would  appear  in  a  book  or  ar- 
ticle. 

•  SCRATCHPAD  has  a  particularly  powerful  yet 
easily  used  mechanism  for  controlling  the  output 
format  of  expressions.  For  example,  the  user  can 
specify  that  an  expression  be  displayed  as  a  power 
series  in  x,  with  coefficients  which  are  factored  ra- 
tional functions  in  b  and  c,  etc.  For  large  expres- 
sions, such  fine  control  over  the  output  may  mean 
the  difference  between  an  important  new  discovery 
and  an  incomprehensible  mess. 

This  generalized  recursive  format  idea  is  so  natural  and 
effective  that  SCRATCHPAD  is  now  absorbing  the  idea 
into  the  internal  representation.  A  study  of  the 
polynomial  additional  algorithm  in  the  previous  section 
reveals  that  it  is  written  to  be  applicable  to  any  coefficient 
domain  which  has  the  algebraic  properties  of  a  ring.  The 
coefficients  could  be  matrices,  power-series,  etc.  That 
coefficient  domain  could  in  turn  have  yet  another  coeffi- 
cient domain,  and  so  on.  With  a  careful  modular  design, 
packages  to  treat  each  of  these  domains  can  be 
dynamically  linked  together  so  that  code  can  be  shared 
and  combined  in  new  ways  without  extensive  rewriting 
and  duplication.  Then  not  only  the  output,  but  also  the 
internal  computations  can  be  selected  most  suitably  for  a 
particular  application. 

For  further  information  about  SCRATCHPAD,  con- 
tact Richard  Jenks  at  the  IBM  Thomas  J  Watson  Research 
Center,  Yorktown  Heights  NY  10598. 

The  Future 

If  the  preceding  sections  have  whet  your  appetite  for 
more  information  about  computer  algebra,  try  some  of 
the  survey  articles,  collections  of  articles,  and  relevant 
books  listed  in  the  bibliography.  Also,  annual  member- 
ship in  the  ACM  Special  Interest  Group  on  Symbolic  and 
Algebraic  Manipulation  costs  a  mere  $2.50  for  students, 
$5  for  other  ACM  members,  or  $8  otherwise.  Member- 
ship includes  a  subscription  to  the  SIGSAM  Bulletin, 
which  contains  the  latest  information  about  relevant 
meetings,  reports,  and  developments. 

Computer  algebra  is  increasingly  available  on  a  wide 
variety  of  processors  ranging  in  size  from  the  Intel  8080 
microprocessor  to  the  Cray  1  supercomputer.  Within  a 
short  while  computer  algebra  should  be  economically 
and  conveniently  accessible  to  most  engineers,  scientists, 
mathematicians,  students,  and  hobbyists.  This 
widespread  availablity  will  have  a  profound  effect  on 
research  utilizing  applied  math,  math  education,  com- 
puter education,  and  recreational  math.  Consider  the 
following: 

•  How  frequently  approximate  numerical  computa- 
tions are  employed  without  first  checking  to  see  if  a 
more  informative  analytical  solution  is  obtainable 
with  the  help  of  computer  algebra. 


•  How  many  mistakes  in  manual  analytical  analyses 
could  be  caught  by  checking  the  derivations  with 
computer  algebra. 

•  How  little  of  elementary-school  through  university 
math  education  is  concerned  with  floating-point 
arithmetic. 

•  How  much  of  this  education  is  concerned  with  the 
kind  of  arithmetic  and  symbolic  transformations 
provided  by  computer  algebra,  or  concerned  with 
theorem  proving,  which  is  especially  well  supported 
by  other  LISP  programs. 

•  How  dramatically  computer  algebra  demonstrates 
the  utility  of  LISP  like  languages,  providing 
numerous  well-motivated  examples  for  teaching 
such  languages. 

•  How  much  more  students  and  enthusiasts  are  in- 
trigued by  artificial  intelligence  and  game  playing 
application  of  computers  than  by  accounting  and 
floating-point  scientific  applications. 

The  conclusion  is  inescapable:  computer  algebra  and 
LISP  like  languages  provide  an  ideal  first  exposure  to 
computer  programming,  and  are  an  invaluable  compo- 
nent of  scientific  programming  skills.  ■ 


Bibliography 

1.  Aho,  A  V,  Hopcroft,  J  E,  and  Ullman,  J  D,  The  Design  and 
Analysis  of  Computer  Aigorithms,  Addison  Wesley  Publishing 
Co,  1975. 

2.  Borodin,  A,  and  Munroe,  I,  Tlie  Computational  Complexity  of 
Algebraic  and  Numeric  Problems,  American  Elsevier,  1975. 

3.  Brown,  W  S,  and  Hearn,  A  C,  "Applications  of  Symbolic 
Algebraic  Computation,"  Comp  Phys  Comm,  (forthcoming). 

4.  Communications  of  the  ACM,  August  1966. 

5.  Communications  of  the  ACM,  August  1971. 

6.  Jenks,  R,  (editor).  Proceedings  of  the  1976  ACM  Symposium  on 
Symbolic  and  Algebraic  Computation,  ACM  Inc,  1976. 

7.  Journal  of  the  ACM,  October  1971. 

8.  Knuth,  D  E,  The  Art  of  Computer  Programming,  Volume  1,  Basic 
Algorithms,  Addison  Wesley  Publishing  Co,  1967. 

9.  Knuth,  D  E,  The  Art  of  Computer  Programming,  Volume  2, 
Seminumerical  Algorithms,  Addison  Wesley  Publishing  Co, 
1968. 

10.  Petrick,  S  R  (editor).  Proceedings  of  the  Second  Symposium  on 
Symbolic  Manipulation,  ACM  Inc,  1971. 

11.  Proceedings  of  1974  Eurosam  Conference,  ACM  SIGSAM 
Bulletin  8,  August  1974. 

12.  Proceedings  of  the  1977  MACSYMA  Users  Conference,  NASA 
CP2012,  June  1977. 

13.  Proceedings  of  the  Second  MACSYMA  Users  Conference,  MIT 
Laboratory  for  Computer  Science,  June  1979. 

14.  Proceedings  of  the  1979  Eurosam  Conference,  Springer-Verlag, 
(forthcoming). 

15.  SI  AM  Journal  on  Computing,  June  1979. 

16.  The  Soft  Warehouse,  POB  11174,  Honolulu  HA  96828, 
distributes  the  author's  muMATH-79  source  code  free  to  those 
who  obtain  muSIMP-77.  Object  listings  of  the  latter  or  of 
muLISP-77  cost  $85,  and  a  machine  readable  version  costs  an 
additional  $95.  Primers  and  reference  manuals  are  available 
separately  for  each  of  these  systems  at  a  cost  of  approximately 
$0.10  per  page. 


192        Augusl  1979  ©  BYTE  Publications  Inc 


Business 

& 
Application 

Software 
Available 

•  Client  Billing 

•  A/R    •  A/P 

•  Gen  .Ledger 

•  Inventory 

•  Payroll 

•  Mailing  List 

•  File  Handling 
for 

TRS-80       APPLE 

& 

OTHERS 

or  Write   for   Details 


in'';l(u..i'</;jj| 


TRS-80 


PROGRAM 

GALACTIC  BLOCKADE  RUNNER 

SCl-Fl  GAME  SAMPLER 

R/T  LUNAR  LANDER 

MICRO-TEXT  EDITOR 

OTHELLO  III 

AIR  RAID 

MICRO-CHESS 

BRIDGE  CHALLENGER 

APPLE  21 

STAR  WARS/SPACE  MAZE 

RENUMBER 

DISK  RENUMBER 

PILOT  2.0 

PILOT  3.0 

APPLE  TALKER 

APPLE  LIS'NER 

TIC-TAC-TALKER 

SYSCOP 

ANDROID  NIM-2 

SNAKE  EGG 

LIFE  2 

DCV-I 

MUSIC  MASTER 

DISK  MUSIC  MASTER 

TRS-80  CP/M 


DESCRIPTION 


•  AN  EXCITING  SPACE  WAR  GAME  WITH  GRAPHICS 

•  3  GAMES— LUNAR  LANDER— STAR  MONSTER— SPACE  BATTLE 

•  A  REAL  TIME  LUNAR  LANDER  WITH  GRAPHICS 

•  FORMAT  TEXT— SAVE  &  LOAD  TO  TAPE— OUTPUT  TO  PRINTER 

•  A  STRATEGY  BOARD  GAME— PLAY  AGAINST  COMPUTER  OR  OTHERS 

•  A  REAL  TIME.  ARCADE  TYPE  SHOOTING  GAME  IN  MACH.  LANG. 

•  PLAY  CHESS  WITH  YOUR  COMPUTER— VARIOUS  LEVELS  OF  DIFF. 

•  DON'T  WAIT  FOR  OTHERS  TO  PLAY- YOUR  COMPUTER'S  READY 

•  BLACK.IACK  WITH  HIRES  GRAPHICS 

•  SCI-FI  GAMES  FOR  1  HE  APPLE 

•  RENUMBER  YOUR  BASIC  PROGRAMS— RENUMBERS  EVERYTHING 

•  SAME  AS  ABOVE,  BUT  ON  DISK 

•  THE  EDUCATIONAL  LANGUAGE.    IN  MACH.  LANG.— INC.  EDITOR 

•  THE  DISK  VERSION  OF  THE  ABOVE 

•  YOUR  APPLE  SPEAKS!  NO  NEW  HARDWARE  REQUIRED 

•  SPEECH  RECOGNITION  THE  EASY  WAY— GREAT  WITH  THE  TALKER 

•  TIC-TAC-TOE  USING  SPEECH  SYNTHESIS  AND  RECOGNITION 

•  MAKE  BACKUP  TRS-80  SYSTEM  TAPES  THE  EASY  WAY 

•  GAME  OF  NIM  WITH  ANIMATED  ROBOTS  AND  SOUND 

•  A  BETTING  GAME  WITH  ANIMATED  SNAKES  AND  SOUND 

.  100  GEN.  PER  MIN.  LIFE  &  BATTI  F  OF  LIFE  W/ANIMATION  &  SOUND 

•  PUT  SYSTEM  TAPES  ON  DISK  EVEN  IF  IN  SAME  MEM  AS  DOS 

•  ENTER  SHEET  MUSIC— THE  TRS-80  THEN  COMPILES  cSc  PLAYS  IT 

•  SAME  AS  ABOVE  BUT  ON  DISK  W/MANY  SELECTIONS 

•  OPENS  UP  THE  WHOLE  WORLD  OF  CP/M  SOFTWARE  TO  THE  TRS-80 


r 

r 

tn 

■0 
■B 

r 

• 

• 

• 

$     9.95 

• 

• 
• 

• 

• 

$  7.95 
$  7.95 
$     9.95 

• 
• 

• 

• 

$  7.95 
$   14.95 

• 
• 

• 
• 

• 
• 
• 
• 

$  19.95 
$  14.95 
$  9.95 
$   12.95 

• 

• 

$   14.95 

• 

• 
• 

• 
• 
• 
• 
• 
• 
• 
• 

• 
• 
• 

$  19.95 
$  14.95 
$  24.95 
$  15.95 
$  19.95 
$  19.95 
$  9.95 
$  14.95 
$  14.95 
$  14.95 
$  9.95 
$  14.95 
$  24.95 
$150.00 

10%  OFF  IF  YOU  ORDER  3  SOFTWARE  PACKAGES  OR  MORE      SEND  FOR  FREE  CATALOG— GIVE  TYPE  OF  COMPUTER 

TO  ORDER  BY  PHONE  OR  FOR  DEALER  INFO— CALL— (617)  682-8131 

ADD  75c  SHIPPING  &  HANDLING  •  MASS.  RESIDENTS  ADD  5%  SALES  TAX 

MAD  HATTER  SOFTWARE  •  900b  SALEM  RD  •  DRACUT,  MA  01826 


CD 


CD 


AVAILABLE  FROM  THESE  FINE  MICRO  COMPUTER  DEALERS 


CAPITOL  COMPUTEK  SYSTEMS 
33%  EL  CAMiNO  AVE. 
SACRAMENTO  CA  9S82I 

TRS-80  SOFTWARE  EXCHANGE 
n  BRIARCLIFF  DR. 
MtLFORD  NH  03033 

OF  AMP  TECH  BOOKS 
1033  N.  SYCAMORE  AVE. 
LOS  ANGLES  CA  W03B 


COMPUTER  CABLEVISION,  INC. 
2617  «ND  ST.  NW  12 
WASHINGTON   tX:  20007 

KENNEr.-Y  SYSTEMS 
74  BROAD  ST. 
LYNDONVILLE  VT  05831 

ADVANCED  COMPUTER  PRODUCTS 
13108  li   ElINoER 
SAKTA  At. A  CA  92703 


HOBBY  WORLD  ELECTRONICS 
19333  BUSINESS  CENTER  DR.  16 
NORTHRIDCE  CA  91324 

AUGUST  AUTOMATION 
UMILK  ST. 
WESTBORO  MA  01581 

THE  CPU  SHOP 
59  PLEASANT  ST. 
CHARLESTOWN  MA  02129 


JAJ  ELECTRONICS  LTD 
28  COLLINGTON  AVE. 
BEXHILL-ONSEA.  E.  SUSSEX.  ENG. 

COMPUTER  VILLAGE 
931  SW87TH  AVE. 
MIAMI   FL  13174 

L.  C.  SALES 

100  HINCHEY  AVE.  t703 

OTTAWA.  ONT..  CAN.  KIY4L9 


Circle  202  on  inquiry  card. 


BYTE  AugusI  1979  193 


BYTE's  Ewgs 


Marsport,  Here  I   Come 

Delmer  Hinrichs  has 
found  several  corrections 
which  should  be  made  to 
"Marsport,  Here  I  Come" 
(April  1979  BYTE,  page  84): 

•  page  90,  step  4  should  be 
"x  <  y?"  Since  there  is 
no  "x  <  y?"  step  avail- 
able on  the  HP67/97, 
users  could  probably  cor- 
rect this. 

•  page  90,  step  25  should 
be  "ST  I."  Since  there  is 
no  "ST  1"  (only 

"STO  1"),  this  is  probably 
correctable  by  users. 

•  page  90,  steps  119  and 
120  must  be  reversed. 
Users  might  be  able  to 
figure  this  out  by  noting 
other  similar  conversions. 

•  page  92,  step  182  should 
be  "—X  —  "  (print/pause), 
not  "X"  (multiply).  This 


could  probably  be 
figured  out  from  the  pro- 
gram operating  instruc- 
tions and  flow  diagram. 
In  any  case,  if  you  get 
here,  you're  going  to 
crash. 
•  page  92,  step  204  should 
be  "GSB  C,"  not  "GSB 
c".  This  error  is 
disastrous,  as  it  causes 
the  spaceship  to 
materialize  at  the  center 
of  Mars. 

Don't  Share  Your  Soap 

An  acronym  was  wrongly 
interpreted  in  "History  of 
Computers:  The  IBM  650" 
by  Keith  S  Reid-Green 
(March  1979  BYTE,  page 
238.)  The  name  of  the  SOAP 
assembler  program  is  pro- 
perly derived  from  the 
phrase  "symbolic  optimal 


assembly  program,"  not 
"SHARE  optimum  assembly 
program,"  as  was  stated. 
Thanks  to  Leo  Walder  of 
Greenbelt  MD  for  pointing 
this  out. 


A  Bug  on  the  Beam 

There  was  a  bug  in  the 
labeling  of  figure  10  on  page 
49  of  Steve  Ciarcia's  Circuit 
Cellar  article  "Communicate 
on  a  Light  Beam"  (May  1979 
BYTE).  The  center  tapped 
transformer  should  have 
been  labelled  as  24  V  instead 
of  18  V. 


Tic  Tac  Bug 


Delmer  Hinrichs  has 
discovered  a  small  bug  in 
the  program  for  "Tic-Tac- 
Toe:  A  Programming  Exer- 
cise" (May  1979  BYTE,  page 
196).  Line  number  340 
should  end  with  3,2,5,7,9 
rather  than  2,3,5,8,9. 


In  addition,  BASICs  other 
than  TDL  8  K  might  have  to 
write: 

230  RANDOM 

instead  of: 

230F  =  RND(-1) 

to  initialize  the  random 
number  generator.  Lines  465 
and  570  might  have  RND(l) 
replaced  with  RND(O)  to 
give  a  random  number  be- 
tween 0  and  1. 

A  Bug  in  the  Field 

John  P  Costas  has  inform- 
ed us  that  several  errors 
crept  into  listing  1  of  "Cryp- 
tography in  the  Field"  (April 
1979  BYTE,  page  145).  The 
locations  and  the  correct 
code  are  given  below. 


Location 

Code 

70 

STO-5 

90 

STO-8 

111 

STO-9 

122 

— 

178 

STO-3 

i^No^' 


Ho^ 


I'd 


from  Computer  Headware 
. . .  the  Self-Indexing  Query  System 

for  your  Apple  II,  North  Star,  or  CP/M  machine 


OJstributed  by: 

•  Infomution  Unlimited  /  219-924-3522 
P.O.  Box  8372,  Merrillville,  Indiana  4641 0 

•  Lifeboat  Associates  /  212-580-0082  (CP/M  model  only) 
224S  Broadmy,  Suite  34,  New  York  City  1D024 

•  Structured  Systems  Group,  Inc. /415-547-1567 
5208  Claremont  Avenue,  Oakland,  California  94618 


194        August  1979  ©  BYTE  Publications  Inc 


Circle  236  on  inquiry  card. 


Event  Oueue 


AUGUST  1979 


August  1-3 
Microcomputer  Applica- 
tions, Southern  Technical 
Institute,  Marietta  GA.  The 
emphasis  of  this  seminar  will 
be  on  the  applications  of 
microcomputers  in  industry. 
Software,  hardware  and  in- 
terfacing techniques  will  be 
discussed.  Contact  Dr 
Richard  L  Castellucis, 
Southern  Technical  Institute, 
Electrical  Engineering 
Technology  Dept,  534  Clay 
St,  Marietta  GA  30060. 

August  6-8 
Pattern  Recognition  and 
Image  Processing,  Hyatt 
Regency  Chicago  O'Hare, 
Chicago  IL.  This  conference 
is  sponsored  by  the  Machine 
Intelligence  and  Pattern 
Analysis  Committee  of  the 
IEEE  Computer  Society.  The 
program  will  consist  of  sub- 
mitted and  invited  papers, 
and  a  large  trade  show  of 
graphics  and  image  process- 
ing equipment.  Contact 
PRIP  79,  POB  639,  Silver 
Spring  MD  20901. 

August  6-10 
SIGGRAPH  '79,  Chicago  IL. 
This  sixth  annual  conference 
on  computer  graphics  will 
feature  tutorials,  technical 
sessions  and  an  exposition  of 
state-of-the-art  computer 
graphics  and  image  process- 
ing equipment.  Contact 
Maxine  D  Brown,  SIG- 
GRAPfi  79  Exposition, 
fiewIett-Packard,  19400 
Homestead  Rd,  Cupertino 
CA  95014. 

August  6-10 
Modern  Communication 
Systems:  Analysis  and 
Design,  University  of 
Southern  California,  Los 
Angeles  CA.  This  course  is 
devoted  to  the  analysis  and 
design  of  modern  com- 
munication systems,  with 
emphasis  on  the  derivation 


of  practical  design  equations 
useful  for  trade-off  studies 
and  overall  synthesis.  Con- 
tact University  of  Southern 
California,  Continuing 
Engineering  Education,  Los 
Angeles  CA  90007. 

August  6-10 
Advanced  Microcomputer 
System  Development:  High 
Level  Languages, 
Technology  Trends,  and 
Hands-On  Experience, 
University  of  Southern 
California,  Los  Angeles  CA. 
This  course  is  intended  to 
present  the  participants  with 
a  clear  picture  of  the 
microcomputer  revolution, 
provide  hands-on  program- 
ming experience  using  ex- 
tended BASIC  and  FOR- 
TRAN, analyze  technology 
trends  in  the  microcomputer 
field,  and  assess  the  impact 
of  VHSI/VLSl.  Contact 
University  of  Southern 
California,  Continuing 
Engineering  Education,  Los 
Angeles  CA  90007. 

August  8-10 
SIGPLAN  Symposium  on 
Compiler  Construction, 

Boulder  CO,  This  sym- 
posium will  consider 
methods  of,  and  experience 
with,  constructing  com- 
pilers. The  emphasis  will  be 
less  on  theoretical  methods 
and  more  on  techniques  ap- 
plied to  real  compilers.  Con- 
tact Professor  Leon 
Osterweil,  Dept  of  Com- 
puter Science,  University  of 
Colorado,  Boulder  CO 
80309. 

August  8-10 
First  Annual  Conference  on 
Research  and  Development 
in  Personal  Computing, 

Hyatt  Regency  Chicago 
O'Hare,  Chicago    IL.  This 
conference  is  sponsored  by 
the  Association  for  Com- 
puting Machinery  (ACM) 
Special  Interest  Group  on 
Personal  Computing 
(SIGPC).  A  large  trade  show 


IMMEDIATE 
DELIVERY 

Domestic  &  Export 

DEC  LSI -11 
COMPONEtnS 

A  full  and  complete 
line  with  software 
support  available. 


mini  Computer 
Suppliers,  knc. 

25  CHATHAM   ROAD 

SUMMIT,   NEW  JERSEY  07901 

SINCE  1973 


(201)  277-6150       Telex  13-6476 


Word  Processing 
and  Data  Management 

TEXTFORM 

This  text-processing  program  can  be  used  for  the  preparation  of  letters,  manuals,  and 
general  documentation.  It  produces  output  for  either  the  console,  line  printer,  or  into  a 
file,  with  automatic  right  margin  justification,  pagination  and  titling,  centering,  under- 
lining, indenting,  and  multiple  line  spacing.  Formatting  commands  are  interspersed 
with  the  source  textfile  for  ease  of  correction. 

Textform  will  automatically  loop  for  repeated  formatting  such  as  form  letters.  A 
preprocessing  program  is  able  to  select  a  subset  of  the  text  data  according  to  a  user 
defined  matching  pattern. 
Here  are  a  few  sample  commands: 

•  PL  n— Set  page  length  to  n 

•  FO  — Define  footer  title 

•  RM  n— Set  right  margin  to  n 

•  JU— Justify  right  margin 

•  N J  — Ragged  right  margin 

•  SO  file  — Read  input  source  from  'file' 

•  RD  file— Read  input  data  from  'file' 

INFORMER 

This  program  is  a  general  purpose  data  management  and  retrieval  system  for  inven- 
tory control,  sales  analysis,  project  scheduling,  billing,  check  writing,  and  mailing  lists. 

Informer  is  a  collection  of  commands  for  creating,  updating,  manipulating,  dis- 
playing, and  analysing  well  defined  data  files. 

Here  are  a  few  sample  commands-. 

•  NEWFILE— Creates  and  defines  fields  for  a  file 

•  SELECT— Selects  data  items  for  processing 

•  SORT— Quick  sort  of  file  by  specified  field 

•  FORMAT  — Prepares  form  letters,  bills  and  checks 

•  COMMAND— Defines  a  new  command  as  a  sequence  of  system  commands 

•  TOTAL— Subtotals  a  field  by  a  specified  key. 

Each  of  the  software  packages  runs  on  8080/Z80  systems 
under  the  CP/M  operating  Si/stem. 

Special  Introductory     ^^_.^   __ 

price  of    $350,00  per  package 
Manual  alone:  $25.00 
Media:  8'  IBM  single  density  Diskette 
Suggested  retail  price  Is  $495.00 

Write  or  call: 

DIGITAN,  INC. 

5001  16th  Auenue.  Brook/yn,  New  York  11204.  (212)  436-3777 


Circle  88  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        195 


Circle  93  on  inquiry  card. 


25  START-AT-HOME 
COMPUTER  BUSINESSES 

In  "Low  Capital,  Startup 
Computer  Businesses" 

CONSULTING  •  PROGRAMMING  •  MICRO  COMPUTER 
OPPORTUNITIES  •  SOFTWARE  PACKAGES  •  FREELANCE 
WRITING  •  SEMINARS  •  TAPE/DISC  CLEANING  •  FIELD 
SERVICE  •  SYSTEMS  HOUSES  •  LEASING  •  SUPPLIES  • 
PUBLISHING  •  HARDWARE  DISTRIBUTORS  •  SALES 
AGENCIES  •  USED  COMPUTERS  •  FINDER'S  FEES  • 
SCRAP  COMPONENTS  •  AND  MORE  .  . 

Plus  —  ideas  on  moonlighting,  going 
full-time,  image  building,  revenue 
building,  bidding,  contracts,  marl<eting, 
professionalism,  and  more.  No  career 
tool  I  ike  it.  Order  now  —  if  not  completely 
satisfied,  return  within  30  days  for  full 
immediate  refund. 

•  8'/?  X  11  ringbound  •  156  pp.  •  $20.00 
Phone  Orders  901-761-9090 


DATASEARCH 

incorporated 

4954  William  Arnold  Road,  Dept.  B,  Memphis,  TN  38117 
Rush  my  copy  of  "Low  Capital  Startup  Computer  Businesses"  at  $20. 

NAME/COMPANY   

ADDRESS  

CITY/STATE/ZIP    


□  Check  Enclosed 


QVISA           D  Master  Charge 
Exp.  Date    


LIGHT-PENtrs.80 

PLUQS  RIQHT  IN!  Exclusive  design  includes  tv\/o  sample 
programs  and  complete  documentation  so  you  can  write 
your  own  programs  in  Basic.  Long  life  from  standard 
9-volt  battery.  A  bargain  at  only  $24.95! 

PRACTICAL  APPLICATIONS^**  (415)  573-8217 

Post  Office  Box  4139,  Foster  City,  CA  94404 

D  Please  send  me TRS-80  Light  Pens 

($24.95  each  enclosed.  Calif,  residents  add  tax). 
n  Send  your  catalogs. 


Name_ 


Address. 
City_ 


TRS-80  is  a  trademark  of  Tandy  Corp. 


_State_ 


-Zip- 


of  personal  computer  and 
graphics  equipment  is  plan- 
ned to  accompany  an  assort- 
ment of  papers,  panels,  user 
group  meetings,  workshops, 
and  person  to  person  poster 
booths.  Contact  Bob  Gam- 
mill,  Computer  Science 
Division,  Dept  of 
Mathematical  Sciences,  300 
Minard  Hall,  North  Dakota 
State  University,  Fargo  ND 
58102. 

August  13-15 
Minicomputers  and 
Distributed  Processing, 

Atlanta  GA.  This  three  day 
seminar  will  examine  the 
uses,  economics,  program- 
ming, and  implementation 
of  minicomputers.  Contact 
the  University  of  Chicago, 
Center  for  Continuing 
Education,  1307  60th  St, 
Chicago  IL  60637. 

August  13-15 
Conference  on  Simulation, 
Measurement  and  Modeling 
of  Computer  Systems 

Boulder  CO.  This  con- 
ference will  feature  perfor- 
mance prediction  techniques 
employed  during  the  design, 
procurement  and 
maintenance  of  computer 
systems.  It  will  provide  a 
forum  for  both  applied  and 
theoretical  work  in  the 
disciplines  of  performance 
monitoring,  modeling,  and 
simulation  of  computer 
systems.  Contact  Gary  Nutt, 
Xerox  PARC,  3333  Coyote 
Hill  Rd,  Palo  Alto  CA 
94304. 

August  13-16 
Q-GERT  Network  Modeling 
and  Analysis,  Ramada  Inn, 
Lafayette  IN  47905.  This 
course  will  provide  the  at- 
tendee with  the  information 
necessary  to  model  complex 
systems  using  Q-GERT.  Em- 
phasis will  be  on  the  pro- 
cedures for  modeling  and 
analysis.  Contact  Pritsker 
and  Associates  Inc,  FOB 
2413,  W  Lafayette  IN  47906. 

August  13-17 
High  Speed  Computation: 
Vector  Processing,  The 

University  of  Michigan,  Ann 
Arbor  MI.  In  this  course, 
the  architectural,  software, 
and  algorithmic  issues  of 
vector  architecture  are  coor- 


dinated by  discussion  of 
concepts  in  computer  archi- 
tecture and    detailed  study 
of  current  vector  processors 
and  their  use.  Contact 
Engineering  Summer  Con- 
ferences, 400  Chrysler 
Center,  North  Campus,  The 
University  of  Michigan,  Ann 
Arbor  MI  48109. 

August  19-22 
International  Conference  on 
Computing  in  the 
Humanities,  Dartmouth  Col- 
lege, Hanover  NH.  This 
conference  is  intended  to 
foster  computer  research  and 
technique  in  all  areas  of 
humanistic  study;  to  pro- 
mote international  coopera- 
tion in  the  development  of 
programs,  data  banks,  and 
equipment;  and  to  make  the 
results  of  research  available. 
The  program  will  include  a 
plenary  session  each  evening 
and  shorter  sessions  during 
the  day.  Contact  Stephen  V 
F  Waite,  Kiewit  Computa- 
tion Center,  Dartmouth  Col- 
lege, Hanover  NH  03755. 

August  19-24 
1979  Symposium  for  In- 
novation in  Measurement 
Science,  Hobart  and  William 
Smith  Colleges,  Geneva  NY. 
Sponsored  by  the  Scientific 
Instrumentation  and 
Research  Division  of  the  In- 
strument Society  of 
America,  scheduled  sessions 
at  this  symposium  include 
innovation  in  computers  and 
electronics,  mass  flow 
measurement,  chemical 
analysis,  applied  analysis  in 
instrument  control,  physical 
analysis,  medical  instrumen- 
tation, and  advances  in  in- 
dustrial measurement.  Con- 
tact Instrument  Society  of 
America,  400  Stanwix  St, 
Pittsburg  PA  15222. 

August  22-24 
Understanding  and  Using 
Computer  Graphics,  San 

Francisco  CA.  This  course  is 
for  people  who  are  using,  or 
are  contemplating  using 
computer  graphics  and 
would  like  to  understand  its 
role  in  their  organization.  It 
will  describe  computer 
graphics,  explain  the 
available  hardware  and  soft- 
ware systems,  and  give  cost 
and  performance  com- 


196        August  1979  ©  BYTE  Publications  Inc 


Circle  303  on  inquiry  card. 


parisons.  Contact  Frost  and 
Sullivan,  106  Fulton  St,  New 
York  NY  10038. 

August  23-26 
National  Small  Computer 
Show,  New  York  Coliseum, 
New  York  NY.  Exhibitors 
will  include  major  manufac- 
turers, distributors,  and 
publications  in  the  small 
computer  field,  A  lecture 
series  will  include  topics  of 
interest  to  business  and  pro- 
fessional people,  hobbyists, 
and  the  general  public.  Con- 
tact National  Small  Com- 
puter Show,  74  E  56th  St, 
New  York  NY  10022. 


SEPTEMBER  1979 

September  4-6 
International  Conference 
and  Exhibition  on  Engineer- 
ing Software,  University  of 
Southampton,  England.  The 
aim  of  this  conference  is  to 
provide  a  forum  for  the 
presentation  and  discussion 
of  recent  advances  in 
engineering  software  and  to 
present  a  state-of-the-art  in 
this  field.  An  exhibition, 
held  in  conjunction  with  the 
conference,  will  cover  all 
software  products,  services, 
and  equipment  related  to 
engineering  software.  Con- 
tact Dr  R  Adey,  Engsoft,  6 
Cranbury  Place,  Southamp- 
ton S02  OLG,  ENGLAND. 

September  4-7 
Compcon  Fair79,  Capital 
Hilton  Hotel,  Washington 
DC.  This  eighteenth  IEEE 
Computer  Society  Interna- 
tional conference  will  pre- 
sent the  latest  developments 
in  microprocessor  architec- 
ture, support  software, 
operating  systems,  and 
peripheral  devices.  Contact 
IEEE  Computer  Society, 
POB  639,  Silver  Spring  MD 
20901. 

September  5-8 
Info/Asia,  Ryutsu  Center, 
Tokyo.  This  exposition  will 
be  devoted  to  information 
management,  computers, 
word  processing,  and  ad- 
vanced business  equipment. 
The  exposition  will  be  ac- 
companied by  a  four  day 
conference.  Contact  Clapp 


and  Poliak  Inc,  245  Park 
Ave,  New  York  NY  10017. 

September  18-20 
Wescon/79,  St  Francis 
Hotel,  San  Francisco  CA. 
Contact  Electronic  Conven- 
tions Inc,  999  N'Sepulveda 
Blvd,  El  Segundo  CA  90245. 

September  24-26 
Minicomputers  and 
Distributed  Processing,  New 

York  NY.  See  August  13-15 
for  details. 

Septentber  25-27 
WPOE  '79,  San  Jose  Con- 
vention Center,  San  Jose 
CA.  This  show  will  be 
dedicated  to  word  process- 
ing and  office/business 
equipment,  services  and 
materials.  Complementing 
the  exhibit  will  be  a  three 
day  executive  conference 
program  that  focuses  on 
emerging  technologies  and 
their  applications  in  the  of- 
fice. Contact  Cartlidge  and 
Associates  Inc,  491  Macara 
Ave,  Suite  1014,  Sunnyvale 
CA  94086. 

September  26-29 
MIMI  '19,  Queen  Elizabeth 
Hotel,  Montreal,  Canada. 
This  symposium  is  intended 
as  a  forum  for  the  presenta- 
tion and  discussion  of  recent 
advances  in  mini  and 
microcomputers  and  their 
applications.  Special  em- 
phasis will  be  given  to  the 
theme  of  the  conference: 
"The  Evolving  Role  of  Minis 
and  Micros  Within 
Distributed  Processing." 
Contact  The  Secretary, 
MIMI  79  Montreal,  POB 
2481,  Anaheim  CA  92804. 

September  28-30 
Northeast  Personal  and 
Business  Computer  Show, 

Hynes  Auditorium,  Boston 
MA.  Displays  and  exhibits 
will  showcase  microcom- 
puters and  small  computer 
systems  of  interest  to 
businesspeople,  hobbyists, 
professionals,  etc.  Lectures 
and  seminars  will  be 
presented  for  all  categories 
and  levels  of  enthusiasts,  in- 
cluding introductory  classes 
for  novices.  Contact  North- 
east Exposition,  POB  678, 
Brookline  MA  02197. 
Text  continued  on  page  200 


Circle  102  on  inquiry  card. 


TM 


Retro-Graphics 


Fdr  your  Dumb  Terminal.     The  Retro- 
Graphics  PC  card  mounts  easily  in  the  Lear 
Siegler  ADM-3A  to  provide  you  with  an  afford- 
able graphics  computer  temiinal, 
Features: 


Z-80  Based 
512  by  250 
Dot  Matrix 
Simple  Plug-in 
Interconnect 


Point  Plotting 
Automatic  Vector 
Generation 

Optional  TEKTRONIX 
Software  Compatibility 


You  will  be  impressed  with  the  packaging,  per- 
formance and  price  of  the  Retro-Graphics  card. 
Write  or  phone  today  for  complete  specifications. 

DIGITAL  ENGINEERING.  INC. 

1 787  Tribute  Road.  Suite  K 

Sacramento.  CA  95815 

(916)920-5600 


Computer  Lab  of  New  Jersey 

Computer  Lab  sells  the  best  S-100  Bus  products  at  the  best 
possible  prices.  Not  only  are  our  prices  great,  so  is  our  deliv- 
ery. We  offer  a  1 0%  discount  on  most  major  lines,  plus  a  5% 
additional  discount  for  a  cash  purchase. 


Seattle  Computer  Products  16K  Plus 

Memory  Board,  Assembled  &  Tested  (2Mhz) 

Cromemco  Single  Card  Computer - 

Assembled 

Ithaca  Audio  Z-80  CPU  Bare  Board 

8K  Static  Ram  Bare  Board 
Electronic  Control  Technology  R^  I/O  Inter- 
face Board,  Assembled  &  Tested 
IMC  Dual  Mini  Box  for  2  Shugart 
SA-400  Drives 
Oliver  Paper  Tape  Reader  Kit 

Subject  to  available  quantities.  Prices  quoted  include  cash  discount. 
Shipping  and  Insurance  Extra. 

Call  for  our  prices  on: 

California  Computer  Systems,  Godbout,  IMSAI,  Integral  Data  Systems, 

Michael  Shrayer  Electric  Pencil,  Micropolis,  Mullen,  SOROC,  SSM, 

Tarbell,  TEI,  Thinker  Toys,  Vector  Graphic 

Computer  Lab  of  New  Jersey 

141  Route  46   •    Budd  Lake,  N.J.  07828 
Phone:  (201)  691-1984 

HOURS:  Monday  &  Friday:  10  to  6,  Tuesday-Thursday:  10  to  9 
Saturday:  10  to  5 

Call  or  write  for  our  free  catalog  &  price  list 


OUR 

LIST 

CASH 

PRICE 

PRICE 

$495.00 

$423.00 

$450.00 

$384.00 

$   35.00 

$    29.00 

$    25.00 

$    21.00 

$295.00 

$252.00 

$   79.00 

$    67.00 

$   74.00 

$   63.00 

Circle  55  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        197 


TRS-80  SOLUTIONS ! 


BUSINESS 

Appointment  log  by  M.  Kelleher.  Perfect  for  the 
professional.  Accepts  name  and  address,  meeting 
start  and  endings,  subject  matter,  derives  elapsed 
time.  For  Level  II,  16K  $9.95 

Payroll  by  Stephen  Hebbler.  Comprehensive  24  pg. 
manual  with  step-by-step  instructions  included  in  the 
package.  Supports  W2  and  941  information.  D, 
$59.95. 

Mall  List  I  by  (Michael  Kelleher  is  the  economy  model 
of  disk-based  mailing  list  programs.  Uses  a  single 
drive  and  handles  up  to  1400  names  per  disk,  plus 
provisions  for  sorting  options.  16K,  D  $19.95. 


Text-80  by  Frank  Rowlett.  Fully-documented  text 
processing  system  for  disk.  Create,  edit,  move, 
delete,  insert,  change,  print  «/ords  or  lines.  D,  32K 
$59.95 

KVP  Extender  by  Lance  Micklus.  Corrects  keyboard 
bounce,  upper  case  lock,  permits  use  as  a  terminal, 
screen  printing.  On  tape  ($24.95)  or  disk  ($29.95) 


BUS-80 

The  Business  Software  People® 

Just  about  everything  you  need  ...  within  1 
year,  participants  receive  programming  for 
Inventory,  Accounts  Receivable,  Accounts 
Payable  and  General  Ledger  systems,  plus 
Sales  and  Payroll.  Complete  documentation 
and  software  on  diskette,  $200.00 


ST  80 -Smart  Terminal 

Lance  Ivlicklus 

Turns  your  TRS-80  Into  a  computer  terminal. 
Features  Include  CONTROL  key,  REPEAT 
key,  ESC  key,  RUN  key  and  a  functioning 
BREAK  key.  Lets  you  list  Incoming  data  on 
line  printer.  Reprogram  RS-232-C  switches 
from  keyboard,  making  baud  rate  changes 
simple.  Level  II,  16K  $49.94 

ST80D 

Lance  Micklus 

The  smart  terminal  made  even  smarter. 
Contains  extensions  for  disk  systems  to 
exchange  files  with  a  timesharing  computer 
or  another  TRS-80  miles  away.  Professional 
quality,  not  an  amateur  program.  32K  $79.95 


IVIall  List  II  by  BUS-80.  Complete  mail  list  system  for 
dual  disk.  Enter,  update,  merge,  sort,  and  print 
mailing  labels.  D,  32K  $99.95 

Small  Business  Bookkeeping  by  Roger  W.  Robitaille, 
is  based  on  the  Dome  Bookkeeping  Journal,  sold  for 
years  in  stationery  and  discount  outlets.  Level  II,  4K 
with  ($22.00)  or  without  ($15.00)  Dome  journal. 

Small  Business  Bookkeeping  For  Disk  by  fvliiler 
Microcomputer  Services  and  Roger  W.  Robitaille,  Sr. 
Extended  version.  32K  Disk.  With  journal  $31.95; 
without  journal  $24.95. 

Inventory  S  by  Roger  W.  Robitaille,  Sr.  240  stock 
items  can  be  contained  using  the  full  6  data  areas  and 
2  pieces  of  alpha  information.  Level  I  or  II,  16K  $25.00 

inventory  11.2  Disk  based  program  allows  for 
creation,  maintenance  and  review  of  over  2,000  items 
per  clean  diskette.  Operates  under  Disk  BASIC,  DOS 
2.1  with  minimum  memory  allocation.  D,  $59.95 

Electric  Pencil  by  Michael  Shrayer.  A  word 
processing  system.  Insertions,  additions,  deletions 
and  corrections  made  more  easily  than  with  an 
editor's  pencil.  Perfect  text  printouts.  Level  II,  16K, 
$100.00.  32K  Disk,  $150.00 

Accounts  Receivable  II  by  S.  Hebbler.  Does  your 
billing,  provides  running  balance,  tracks  overdue 
accounts,  custom  message  printing  option,  much 
MORE.  Requires  32K  2-disk  system  $79.95 

General  Ledger  I  by  M.  Kelleher.  Establishes, 
defines,  deletes  and  sorts  up  to  400  accounts.  Up  to 
200  entries  per  session.  For  small-to-medium 
businesses  not  requiring  double  entry  books.  A  com- 
prehensive, flexible  accounting  system.  Requires 
32K  disk.  $79.95. 

Inventory  System  2.3  by  M.  Kelleher.  One  of  small 
business  management's  most  difficult  problems 
brought  under  control.  Keep  current  on  price 
increases,  shrinkage,  low  stock,  profit  margins. 
Program  can  handle  up  to  1,000  items  per  data 
diskette.  Improved  version,  lower  price.  With 
documentation  $99.95,  32K  2-disk. 


8080-Z80  Conversion  by  M.  Kelleher.  Permits  you  to 
enter  8080  codings  and  returns  theZBO  equivalent.  L 
II,  16K  $15.00 

Basic  Statistics  by  Steve  Reisser.  Pearson  product- 
movement  correlation  coefficient,  chi-square,  Fisher 
T-test,  sample  analysis  of  variance,  Z-scores  and 
standard  scores,  with  a  random  number  generator 
built  in  to  simulate  data.  L  II,  16K  $20.00 


NEWDOS 

Apparat 

DISK  ERROR  SOLVED!  Stop  blaming  your 
drive,  fix  your  DOS  with  NEWDOS:  an 
enhanced  disk-operating  system  capable  of 
correcting  over  70  errors  in  TRSDOS  2.1  to 
Improve  reliability,  and  key  t»unce,  enable 
DOS  commands  to  be  called  from  BASIC  and 
much  more!  Available  NOW  for  16K  systems 
with  a  minimum  of  1  disk  drive.  $49.95 

NEWDOS -H 

Includes  all  the  features  of  the  original 
NEWDOS  and  adds  7  new  utilities.  Including 
SUPERZAP,  Disk  Editor/Assembler,  Dis- 
assembler, and  Level  I  BASIC  for  Disk. 

$99.95 


ACTION  GAfVIES 

Slalom  by  Denslo  Hamlin.  Choose  between  Slalom, 
Giant  Slalom  and  Downhill.  Level  II,  16K  $7.95 

X-WIng  Fighter  II  by  Chris  Freund.  Piloting  an 
X-wing  fighter,  you're  out  to  destroy  the  Death  Star! 
A  new,  improved  version  of  an  exciting  space 
favorite.  Level  II,  16K.  $9.95 

Air  Raid  by  Small  System  Software.  High  speed 
machine  language  program  with  large  and  small 
aircraft  flying  at  different  altitudes.  Ground-based 
missile  launcher  aimed  and  fired  from  keyboard. 
Planes  explode  when  hit,  cause  damage  to  nearby 
aircraft.  Score  tallied  for  hits  or  misses.  Level  I  or  II, 
4K  $14.95. 

All  Star  Baseball  by  David  Bohike,  Level  II,  16K 
$7.95 


Baiter  Up  by  David  Bohike.  Level  II,  16K  $5.95 

Ten  Pin  by  Frank  Rowlette.  A  game  of  coordination, 
the  scoring  is  true  to  the  rules  of  the  sport.  Level  II, 
16K  $7.95 

Taipan  by  Art  Canfil.  Sail  the  China  seas,  dodging 
pirates  and  cutthroats,  to  make  your  fortune  trading 
in  arms  and  opium.  Level  II,  16K.  $9.95. 

Balloon  Race  by  Dean  Powell.  High  above  the 
Atlantic,  your  balloon  must  be  cleverly  maneuvered 
with  the  prevailing  winds  to  reach  Paris.  Level  II, 
16K,  $9.95. 


ADVENTURES 

Scott  Adams 

Feel  as  if  you're  manipulating  HAL  from  2001 
when  you  play  these  machine  language 
games.  Hardly  any  rules,  finding  out  is  part 
of  the  fun.  Two  adventures  on  32K  disk, 
$24.95.  Tape  -  choose  from  Land  Adventure, 
Pirate's  Cove,  Mission  Impossible,  The 
Count,  and  Voodoo  Castle  -  $14.95  each. 


DOG  STAR  ADVENTURE 

Lance  Micklus 

You're  trapped  aboard  an  enemy  battiestar 
...  can  you  find  the  gold,  rescue  the  princess, 
discover  the  plans  and  safely  escape?  Level 
ii,  16K  $9.95. 


Amazin'  Mazes  by  Robert  Wallace.  Ever  -changing 
maze  situation.  Level  II,  16K  $7.95 

Kamikaze  by  Russell  Starkey.  Command  your  ship 
against  attacking  suicide  planes.  Machine  language 
graphics  make  this  fast  and  fun!  L  II,  16K  $7.95 

Space  Battles  by  Level  IV.  Features  three  levels  of 
play,  fast,  machine  language  graphics,  real-time 
input,  and  "smart"  enemy  ships  that  move  and 
shoot!  Level  II,  16K  Tape  or  32K  Disk.  Tape  $14.95, 
Disk  $19.95. 

MISCELLANEOUS 

Diskettes  Dysan  104/1  Box  of  five,  $24.95  +  $1.00 
shipping.  Verbatim,  box  of  ten,  $34.95  +  $1.00 
shipping/handling. 

Z80  Instruction  Handbook  by  Scelbi  Publ.  $4.95 
+  $1.00  shipping/handling. 

The  BASIC  Handbook  by  Dr.  David  A.  Lien  $14.95  + 
$1.00  shipping/handling. 

Percom  Disk  Drives.  Single  or  dual,  for  TRS-80's. 
Reliable,  high  quality,  priced  $100  lower  than 
comparable  units!  Single  drive  -  $399.00;  Dual  Drive  - 
$799.00;  Cable  (required)  -  $29.95. 

Floppy  Armour  Protective  envelopes  for  shipping 
floppy  disks,  of  high-density,  uitra-lightweight 
polymer.  5-pack,  $4.95  +  $1.00  shipping/handling 


16K  MEMORY  KITS 

Ithaca  Audio 

8  tested,  guaranteed  16K  RAM's,  amazing 
low  price  -  $99.95 


198        BYTE  August  1979 


Circle  374  on  inquiry  card. 


SIMULATIONS 

3-D  Tic  Tac  Toe  by  Scott  Adams.  Three  skill  levels  - 
author  warns  you  to  practice  before  tackling 
computer's  third  skill  level.  I  or  II,  16K  $7.95 

Star  Trek  III.3  by  Lance  Micklus.  One  of  the  most 
advanced  Star  Trek  games  ever  written.  Level  II,  16K 
$14.95. 

End  Zone  by  Roger  W.  Robitaille,  Sr.  Authentic 
football  simulation,  right  down  to  the  2-minute 
warning.  Level  I  or  II,  16K  $7.95 

Cribbage  by  Roger  W.  Robitaille,  Sr.  You  versus  the 
computer  cribbage  played  by  standard  rules.  Level  I 
or  II,  16K,  $7.95. 

Bridge  Challenger  by  George  Duisman.  You  and  the 
dummy  play  4-person  contact  bridge  against  the 
computer.  Level  II,  16K  $14.95 

'Rouncj  the  Horn  by  Rev.  George  Blank.  You're  the 
captain  of  a  clipper  ship  racing  from  New  York  to  San 
Francisco.  Level  II,  16K$9.95 


Concentration  by  Lance  tvlicklus.  One  of  the  most 
popular  television  games.  Level  I  or  II,  16K  $7.95 

Safari  by  David  Bohlke.  You're  in  the  running  for  a 
film  contract  at  a  major  Hollywood  studio.  To  qualify, 
you  must  photograph  the  most  wild  animals  in  their 
natural  habitat.  Level  II,  16K$7.95. 

Pork  Barrel  by  Rev.  George  Blank.  Places  you  in  the 
shoes  of  an  aspiring  Congressman.  Level  II,  16K 
$9.95 

Backgammon  by  Scott  Adams.  Level  II,  16K  $7.95 

Chess  Companion  by  fvl.  Kelleher.  Combines  chess 
clock  features  with  ability  to  record  your  moves  while 
action  is  fast  and  furious.  Level  II,  16K  $7.95 

Sargon  Chess  by  Dan  &  Kathe  Spracklen.  Winner  of 
the  1978  San  Jose  fvlicrocomputer  Chess  Tourna- 
ment. Level  II,  16K  $19.95 

Mastermind  11.2  by  Lance  Micklus.  Lets  you  and  the 
computer  take  turns  making  and  breaking  codes. 
Level  II,  16K$7.95 


T|S 


TRf-60  SefluiQfe  EKchonoe 

l*60S*67S*5M4 

17  BRIAR  CLIFF  DRIVE  MILFORD.  NEW  HAMPSHIRE  03055 


PERSONAL 

RPN  Calculator  by  Russell  Starkey.  A  self-document- 
ing calculator  program.  Uses  Reverse  Polish  Notation 
with  4-level  stack,  100  memories,  scientific  functions. 
Level  II,  16K  $9.95 

Home  Financial  Management  by  M.  Kelleher.  Turns 
your  computer  into  a  personal  financial  advisor.  Level 
II,  16K$9.95 

Tarot  by  Frank  B.  Rowlett,  Jr.  Probably  the  best 
future-gazing  type  program  ever  written.  Try  it  - 
you'll  like  it!  Level  I  or  II,  16K  $9.95 

Ham  Radio  by  fvl.  Kelleher.  Amateur  Frequency  Allo- 
cations, ID  Timer,  Q-signal  File,  Amateur  Log 
Routine,  Propogation  Forecasting.  L  II,  16K  $9.95. 
Special  Disk-enhanced  version,  32K   $24.95 

Educator  Assistant  by  Steve  Reisser.  Five  programs 
of  value  to  educators.  Compute  percentage, 
individual  student  averages,  class  averages,  standard 
test  scores,  final  grades.  L  II,  16K  $9.95  D,  $14.95 

Electronic  Assistant  by  John  Adamson.  A  group  of  9 
subprograms  designed  to  solve  problems  such  as 
tuned  circuits  and  active  and  passive  filters.  L  II,  16K 
$9.95 

Personal  Finance  by  Lance  IVlicklus.  33  different 
budgets  can  be  easily  adapted  by  user  to  fit  his 
individual  needs.  A  2-part  program,  entry  and 
search.  Level  II,  16K   $9.95 

Advanced  Personal  Finance  by  Lance  Micklus.  Same 
as  above  with  advanced  analysis  routine.  Supports 
Disk  Files  D,  32K    $24.95 


Magazine  Section 


jsfisia 


SoftSide  is  for  pioneers  .  .  .  those 
hardly  souls  who  have  adopted  a 
TRS-80,  installed  it  in  their  living- 
room  or  office,  and  unleashed  their 
imaginations. 

SoftSide  helps  you  discover  the 
endless  variety  of  tasks  your  new 
friend  will  do  for  you,  as  you  build  a 
unique  partnership  of  human  being 
and  machine. 

We  publish  software  for  the 
partners.  Every  month  we  publish 
games,  household  application  pro- 
grams, educational  aids,  business 
programs.  We  help  you  realize  your 
expectations,  fantasies,  and 
dreams. 

SoftSide  means  Software! 


DEALER 

INQUIRIES 

INVITED 

For  further  details  call: 
603-673-5144 


A  bi-monthly  magazine  for  the 
serious  programmer  who  wants  to 
know  HOW  his  computer  works  and 
WHY.  PROG/80  emphasizes  tech- 
nique rather  than  canned  programs. 
The  subjects  include  machine  lan- 
guage, construction  projects  and 
specialized  applications  software,  not 
just  for  the  advanced  computer 
hobbyist,  but  for  the  computerphile 
who  wants  the  most  from  his 
machine. 


4pp(e  Seed 


pioneer, 
software  : 
someone 


[  If  you're  an  Apple  II 
'  you've  been  longing  for  a 
I  publication  and  hoping 
'would  get  around  to  it. 
',  We  have.  Apple  Seed  is  to  the 
[Apple  II  what  SoftSide  is  to  the 
.TRS-80.  And  it's  brand  new.  The 
Jfirst  issue  will  roll  off  the  press  in 
» August  or  September.  Apple  II 
[enthusiasts  will  eat  up  this  special 
(introductory  offer! 


SOFTSIDE 

n  1  Year -12  issues  $18.00 

PROG/80 

D  1  Year -6  issues  $20.00 

APPLE  SEED 

D  1  Year -12  issues  $15.00 


PO  Box  68  Milford,  NH  03055 

D  USA  first  class  $25.00  - 1  yr. 
D  APO/OVERSEAS  surface  $25  - 1  yr. 
D  CANADA/ MEXICO  $25  -  1  yr. 
D  OVERSEAS  airmail  $30  -  1  yr. 


Exp.  Date. 
Signature - 

Name 

Address 

City 


-Interbank  #[M/Conly]. 


.State. 


-Zip. 


Telephone  orders  accepted  for  Master  Charge  or  VISA  accounts.  Call  fi^onday  through 
Friday,  9:30  to  5:30  EST  at  603-673-5144 


Circle  313  on  inquiry  card. 


BYTE  August  1979         199 


OCTOBER  1979 

October  1-3 
Second  Annual  Symposium 
on  Small  Systems,  Hilton 
Inn,  Dallas  TX.  The  sympo- 
sium will  consist  of  a  blend 
of  paper  and  panel  discus- 
sions with  major  emphasis 
on  microcomputer  applica- 
tions. Both  hardware  and 
software  topics  presenting 
state-of-the-art  and  state-of- 
the-industry  aspects  will  be 
included.  Contact  Gerald 
Kane,  Southern  Methodist 
University,  Dallas  TX. 

October  2-4 
NEPCON  Central  '79, 
O'Hare  Exposition  Center, 
Rosemont  IL.  This  tenth  an- 
nual exhibition  and  con- 
ference of  electronic  and 
microelectronic  packaging 
and  production  equipment 
will  feature  displays  of  elec- 
tronic and  microelectronic 
materials,  hardware,  tools, 
supplies  and  test  instru- 
ments. Contact  Industrial 
and  Scientific  Conference 
Management  Inc,  222  W 
Adams  St,  Chicago  IL 
60606. 

October  14-17 
International  Data  Process- 
ing Conference  and  Business 
Exposition,  Town  and 
Country  Hotel,  San  Diego 
CA.  Contact  Data  Proces- 
sing Management  Associa- 
tion, 505  Busse  Highway, 
Park  Ridge  IL  60068. 

October  15-18 
Sixth  Information  Manage- 
ment Exposition  and  Con- 
ference, New  York  Col- 
iseum, New  York  NY.  Con- 
tact Clapp  and  Poliak  Inc, 
245  Park  Ave,  New  York 
NY  10017. 

October  15-19 
CPEUG  79,  San  Diego  CA. 
This  is  the  fifteenth  meeting 
of  the  Computer  Perfor- 
mance Evaluation  Users 
Group  sponsored  by  the  Na- 
tional Bureau  of  Standards. 
Contact  Judith  G  Abilock, 
The  Mitre  Corp,  Metrek 
Div,  1820  Dolley  Madison 
Blvd,  McLean  VA  22102. 


October  16-18 
Understanding  and  Using 
Computer  Graphics, 

Washington  DC.  See  August 
22-24  for  details. 

October  21-23 
New  York  State  Association 
for  Educational  Data  Sys- 
tems Annual  Conference, 

Granit  Hotel,  Kerhonksen 
NY.  The  theme  of  this  con- 
ference is  "Instructional 
Computing  —  Hardware/ 
Software/Courseware." 
Contact  Mary  E  Heagney, 
9201  Shore  Rd,  Brooklyn 
NY  11209. 

October  22-24 
Computers  in  Aerospace 
Conference  II,  Hyatt  House 
Hotel,  Los  Angeles  CA.  The 
conference  theme,  "Com- 
puter Technology  for  Space 
and  Aeronautical  Systems  in 
the  Eighties,"  will  be  carried 
out  by  a  series  of  panels,  in- 
vited presentations,  and 
contributed  papers  which 
will  bring  computer  system 
technologists  together  with 
specialists  in  the  application 
of  embedded  computers  in 
space  and  aeronautics.  Con- 
tact American  Institute  of 
Aeronautics  and 
Astronautics,  1290  Ave  of 
the  Americas,  New  York  NY 
10019. 

October  22-25 
ISA/79,  O'Hare  Exposition 
Center,  Chicago  IL.  The 
conference  theme,  "In- 
strumentation for  Energy 
Alternatives,"  will  em- 
phasize current  practices  in 
instrumentation  design  and 
implementation.  Contact  In- 
strument Society  of 
America,  400  Stanwix  St, 
Pittsburgh  PA  15222. 

October  28-30 
The  Tenth  North  American 
Computer  Chess  Champion- 
ship, Detroit  Plaza,  Detroit 
Michigan.  Sponsored  by  the 
Association  for  Computing 
Machinery,  this  is  a  four 
round,  Swiss  style  tourna- 
ment, with  the  first  two 
rounds  to  be  played  on  Oc- 
tober 28th  (1  PM  and  7:30 
PM),  the  third  on  October 
29th  (7:30  PM),  and  the 


final  round  on  Tuesday,  Oc- 
tober 30th  (7:30  PM).  Con- 
tact Monroe  Newborn, 
McGill  University,  School  of 
Computer  Science,  805  Sher- 
brooke  St  W,  Montreal  PQ, 
CANADA  H3A  2K6. 

October  29  -  November  2 
Applied  Interactive  Com- 
puter Graphics,  University 
of  Maryland,  College  Park 
MD.  This  course  is  designed 
to  cover  the  most  important 
facets  of  graphics  that  are 
necessary  to  develop  general 
graphic  applications. 
Systems  considerations  in- 
cluding configuration  selec- 
tion criteria,  and  the  pros 
and  cons  of  off-the-shelf 
software  are  stressed.  The 
most  important  factors  and 
techniques  are  described  for 
hardware,  software,  and 
geometric  modeling.  Contact 
UCLA  Extension,  10995  Le 
Conte  Ave,  Los  Angeles  CA 
90024. 

October  30  -  November  1 
Interface  West,  Anaheim 
Convention  Center, 
Anaheim  CA.  This  third  an- 
nual West  Coast  small  com- 
puter and  office  automation 
systems  conference  and  ex- 
position will  feature  over 
100  company  exhibits  and 
60  conference  sessions  cover- 
ing a  variety  of  data  pro- 
cessing, word  processing, 
data  communications, 
management  hardware,  soft- 
ware, and  service  topics. 
Contact  the  Interface 
Group,  160  Speen  St,  Fram- 
ingham  MA  01701. 


Newsleltsps 


Sacramento  Micro- 
computer Users  Group 

According  to  Push  &  Pop, 
the  newsletter  of  the 
Sacramento  Microcomputer 
Users  Group,  this  organiza- 
tion meets  the  fourth  Tues- 
day of  every  month  at  7:30 
PM  at  the  SMUD  Training 
Facilities  on  59th  St.  Their 


mailing  address  is  POB 
161513,  Sacramento  CA 
95816. 


Northwest  Computer 
Society  Meets 
Twice  a  Month 

The  Northwest  Computer 
Society  meets  at  Seattle 
University  in  the  Library 
Auditorium,  Room  115.  The 
University  is  on  12th  Ave 
between  E  Madison  St  and  E 
Cherry  St.  Meetings  are  held 
the  first  and  third  Thursday 
of  each  month  at  7:30  PM. 
The  first  meeting  of  the 
month  usually  features  a 
formal  presentation  by  a 
speaker  or  speakers.  The  se- 
cond meeting  is  usually 
more  informal  with  free- 
wheeling discussion  and  pro- 
blem solving.  Membership 
in  the  Northwest  Computer 
Society,  which  includes  the 
impressive  Northwest  Com- 
puter News,  is  $7.  For  more 
information,  write  the  club 
at  POB  4193,  Seattle  WA 
98104,  or  call  (206)  284-6109 
for  recorded  information. 


The  Computer 
Hobbyist  Group 
of  North  Texas 

The  Printed  Circuit  is  a 
well  organized,  informative 
newsletter  published  by  The 
Computer  Hobbyist  Group 
of  North  Texas.  In  a  recent 
issue  there  were  reports 
from  various  user  groups 
within  the  club,  a  list  of 
coming  attractions,  a  reprint 
of  an  article  about  the 
Tandy  and  Texas  Instru- 
ments' race  for  the  home 
computer,  an  S-100  bus  arti- 
cle, new  products,  and 
more.  The  Printed  Circuit 
may  be  obtained  by  joining 
the  group  at  a  rate  of  $7  per 
year.  Dues  should  be  sent  to 
Warren  Bean,  2405  Briar- 
wood,  CarroUton  TX  76006. 


Denver  Amateur 
Computer  Society 

The  Denver  Amateur 


200        August  1979  ©  BYTE  Publications  Inc 


Circle  175  on  inquiry  card. 
/ 


Circle  376  on  inquiry  card. 


^  TM 

EasyWriter 

a 

Word  Processor 

for  your 

Apple-II 

If  you've  been  hunting  high  and  low  for 
a  word  processor  that  you  can  hve  with, 
try  on  EasyWriter  —  a  word  processor  you 
can't  hve  without! 

You  saw  It  at  the  West  Coast  Computer 
Faire.  If  you  liked  it  then,  you'll  love  it 
now.  It's  easy.  It's  clean.  It's  just  what 
you've  been  waiting  for. 

Try  one  on  for  size. 

EasyWriter  makes  writing  easy! 


A  product 
of 

CAP'N 

SOFTWARE 

San  Francisco,  CA 


Information  Unlimited 
Software 

146  N  Broad  St 
Griffith  IN  46319 
(219)  924-3522 
Contact: 
Gregg  DesElms 


TRS-80 

VOTRAX 

COMPUTALKER 

SYNTHESIZERS 


Our  ANGLOPHONE  Z80/6080  progronn  converts  ordinary 
English  ASCII  in  red  finne  info  phonetic  codes  to  drive  your 
speech  synthesizer. 

For  TRS-80  (Level  II  16K  cassette  or  32K  diskette)  S45 

For  Computolker  (requires  CSR1 )  S45 

ForVotroxVSK  $100 

For  Votrox  VS-6  $200 
(CUTS,  CP/M  8",  North  Star  5",  Poper  Tope) 

TALKING  TERMINAL 

Our  ANGLOTERM  progronn  turns  any  TRS-80  Level  111 6K  with 
Exponsion  Interface.  RS-232-C  Doord  and  Voice  Synthesizer 
into  0  talking  computer  terminal.  Cassette  or  diskette  $145. 

UPPER,  CASE,  201 1  Silver  Ct.  E.,  Urbono,  IL  61601 

(217)  084-4382  VISA/Master  Charge 


rmnn 


2nrrTrffTr?rr!rr?nrrr7nnnroTnnr 


°  ^/'''^To  further  improve' 
service  to  our  customers  we 
have  installed  a  toll-free 
WATS  line  in  our 
Peterborough,  New 
Hampshire  office.^ 
If  you  would 
i  ke  to  order  a ' 
subscription  to\ 
^  BYTE,  or  if 

Toll-free 


BYTE's  New 


Subscriber 
W.A.T.S.  Line 


you  have  a 
question  reiat 
ed  to  a  BYTE 
subscription, 
you  are  invited' 
to  call* 
(800)258-5485 
between  8:00  AM  and 
4:30  PM  Eastern  Time 
(Friday  8  AM -Noon) 
Calls  from  conti 
nental  U.S. 
only 

JiULIULlL(Lg-IL<Lfl-a-IUi-g-g-8-g.g-g-g-(Lfl-0-g.g-l 


r 


(800)258-5485   V( 

We  thank  you  and  look 
forward  to  serving  you. 


9178 


=\ 


6i20  'P%<mco*Uci  IRa^ 
ACewuicOica,.  ^Ot^ctUa  223W 

Yes,  We're  moving  into  larger  quarters 
and  onto  bigger  things  .  .  .  like  expancieci 
inventory,  larger  service  facilities  ancd  a 
curriculum  of  microcomputer  courses.  All 
this,  thanks  to  our  patrons  who  have  made 
this  possible.  Our  thanks  for  your  support! 


^ 


\= 


"The  Plus  Makes  the  Difference" 


J 


Circle  65  on  inquiry  card. 


BYTE  AugusI  1979         201 


Circle  132  on  inquiry  card. 

If  you  own  an 

IBM  Selectric® 

you  already  have 

a  high  quality  output  printer. 

•  Escon  printer  conversion  fits  right  in 

•  Installation  does  not  affect: 

Shape  or  normal  functioning  of  typewriter  nor 
eligibility  for  IBM  warranty  and  service 

•  Available  in  S-100,  Parallel,  RS-232orIEEE-488 

•  Entire  high  quality  printer  system  for  TRS-80, 
Apple,  PET,  Sorcerer,  Horizon,  etc. 

•  All  systems  assembled,  tested  and  burnt -in 

•  Factory  installations  available;  complete 
systems  with  typewriter  available 

Prices*   S-100         $496.00       Parallel    $525.00 
RS-232      $549.00       IEEE         $575.00 
*  Prices  valid  in  USA  only 


Escon  Products,  Inc. 

171  Maytiew  Way,  Suite  204, 
Pleasant  Hill,  CA  94523 
(415)  935-4590 


APPLE  II 

DEVICES  BY  MICROPRODUCTS 


CENTRONICS  779  and  PR-40  PRINTER  INTERFACE 

Fully  assembled  with  software  driver  on  cassette $49.95 

With  Centronics  connector  installed 64.95 

OKIDATA  110  PRINTER  INTERFACE 

Fully  assembled  with  software  driver  on  cassette 49.95 

With  OKIDA  TA  connector  installed 64.95 

EPROM  PROGRAMMER 99.95 

Fully  assembled,  programs  5  volt  EPROMs,  e.g.,  INTEL2716, 
2758  and  Tl  2516 

APPLE  II  EPROM  SOCKET  ADAPTER 14.95 

Adapts  5  volt  EPROMs  to  APPLE  II  ROM  sockets 

INTERFACE  BRAIN (call  for  current  pricing) 

Converts  above  products  Into  Intelligent  peripherals  callable 
from  BASIC.  Consists  of  a  2758  EPROM  containing  printer 
drivers  and  EPROM  Programmer  driver. 

6  CHARACTER  LABEL  EDITOR/ASSEMBLER 

Second  genera  tlon  editor/assembler  with  enhanced  editor  fea  tures 
and  text  Hie  compatibility  with  the  6  Character  Disassembler. 

ON  CASSETTE 34.95 

ON  DISKETTE 39.95 

6  CHARACTER  LABEL  DISASSEMBLER/TEXT 
FILE  MANAGER 

Second  generation  disassembler  which  creates  a  text  file  that  may 
be  reassembled  by  the  6  Character  Assembler  above. 

ON  CASSETTE 34.95 

ON  DISKETTE 39.95 


SEE  YOUR  LOCAL  DEALER 


MICROPRODUCTS 

2107  Artesia  Blvd.  /  RedoncJo  Beach  /  CA  90278 
1213)374-1673 


Computer  Society  has 
recently  increased  the 
printing  of  their  newsletter. 
Interrupt,  to  1,000  copies, 
and  has  begun  over-the- 
counter  distribution  at  local 
computer  stores.  First  class 
mailings  of' the  newsletter 
will  be  restricted  to  paid 
members  only.  The  club 
meets  the  third  Wednesday 
of  the  month  at  7:30  PM  at 
1380  S  Santa  Fe,  Denver 
CO.  Many  user  groups 
within  the  club  meet  at 
different  times  and 
locations.  For  further  infor- 
mation, write  to  Mike 
Dymtrasz,  president  of  the 
society,  at  the  above 
address. 


Computers  in  Psychiatry 
and  Clinical  Psychology 

Computers  in 
Psychiatry/ Psychology 
(formerly  Micro-Psych),  a 
bi-monthly  newsletter  for 
professionals  interested  in 
the  use  of  computers  in 
psychiatry  and  clinical 
psychology,  is  beginning  its 
second  year  of  publication. 
It  addresses  itself  in  an  in- 
formal, scientific  style  to 
clinical  users  of  the  com- 
puter. Three  pages  of  each 
issue  are  devoted  to  a 
description  of  the  computer 
related  activities  of  sub- 
scribers. Each  issue  of  the  13 
page  newsletter  contains 
summaries  and  reviews  of 
recently  published  articles 
and  books  as  well  as  an  on- 
going bibliography  and  a 
program  catalogue.  Recent 
additions  include  a  clear- 
inghouse for  information  on 
training  opportunities  in  the 
field  and  a  new  hardware 
column.  Subscriptions  to 
Volume  2  can  be  obtained 
by  sending  $15  to  Com- 
puters in  Psychiatry/- 
Psychology,  26  Trumbull  St, 
New  Haven  CT  06511.  The 
Best  of  Micro-Psych  — 
Volume  1,  a  52  page  com- 
pilation of  articles  and  infor- 
mation from  Volume  1,  is 
also  available  for  $12. 


The  New  England 
Computer  Society 


The  New  England  Com- 
puter Society  meets  on  the 
first  Wednesday  of  each 
month  to  exchange  com- 
puter hobbyist  information 
and  sponsor  activities.  The 
NECS  is  the  oldest  and  one 
of  the  largest  clubs  in  the 
Boston  area,  with  over  200 
members.  Within  the  club 
are  8080,  6502,  TRS-80, 
6800,  PET,  Apple  and 
Digital  user  groups.  The 
meetings  start  at  7  PM  and 
are  held  at  the  Mitre  Corp 
cafeteria.  Route  6,  east  of 
Route  3,  Bedford  MA.  For 
additional  information, 
write  to  the  New  England 
Computer  Society,  POB 
198,  Bedford  MA  01730. 


Heath  Company 
Newsletter 


Buss  is  an  independent 
newsletter  of  Heath  Com- 
pany computers.  It  contains 
Heath  product  information 
and  user  reports.  The  price 
for  12  issues  is  $8  ($10 
overseas).  Contact  Charles 
Floto,  325  Pennsylvania  Ave 
SE,  Washington  DC  20003. 


Publication  for  the 
Computer  Professional 

The  Data  Processing 
Digest  (DPD)  is  written  for 
the  computer  professional 
and  the  manager  who  uses 
computer  technology  for 
planning,  control  and  pro- 
duction. The  editors  of  DPD 
regularly  search  through 
numerous  business  and  in- 
dustrial periodicals  and 
reports  to  locate  articles  on 
all  aspects  of  computer 
technology  and  its  applica- 
tion to  operations  and 
management.  Concise  sum- 
maries of  these  articles, 
reviews  of  books  on  data 
processing,  and  listings  of 
current  professional 
meetings  and  seminars  ap- 
pear in  each  issue.  The 
subscription  rates  are  $57 
for  one  year;  $108  for  two 
years;  and  $153  for  three 
years.  Contact  Data  Process- 
ing Digest  Inc,  6820  La  Ti- 
jera  Blvd,  Los  Angeles  CA 
90045. 


202        August  1979  ©  BYTE  Publications  Inc 


Circle  208  on  inquiry  card. 


Circle  12  on  inquiry  card. 


vv= 


A  Message 
to  our  Subscribers 


From  time  to  time  we  mal<e 
the  BYTE  subscriber  list 
available  to  other  companies 
who  wish  to  send  our 
subscribers  promotional 
material  about  their  products. 
We  take  great  care  to  screen 
these  companies,  choosing 
only  those  who  are  reputable, 
and  whose  products,  services, 
or  information  we  feel  would 
be  of  interest  to  you.  Direct 
mail  is  an  efficient  medium 
for  presenting  the  latest 
personal  computer  goods  and 
services  to  our  subscribers. 

Many  BYTE  subscribers 
appreciate  this  controlled 
use  of  our  mailing  list,  and 
look  forward  to  finding 


information  of  interest  to 
them  in  the  mail.  Used  are 
our  subscribers'  names  and 
addresses  only  (no  other 
Information  we  may  have  is 
ever  given). 

While  we  believe  the 
distribution  of  this 
information  is  of  benefit  to 
our  subscribers,  we  firmly 
respect  the  wishes  of  any 
subscriber  who  does  not  want 
to  receive  such  promotional 
literature.  Should  you  wish  to 
restrict  the  use  of  your  name, 
simply  send  your  request  to 
BYTE  Publications  Inc,  Attn: 
Circulation  Department, 
70  Main  St,  Peterborough  NH 
03458.  Thank  you. 


Tremendous  Savings 
on  Refurbished  AJ 
Couplers/Modems 

Your  chance  to  buy  the  best  from  the  world  leader  in 
data  communications.  We  have  a  variety  of  couplers 
and  modems — formerly  on  lease  to  our  customers 
— fully  refurbished.  This  is  a  rare  opportunity  for  you 
to  have  the  same  models  used  by  the  largest  compa- 
nies in  the  world. 

•  Some  models  under  $100! 

•  30-day  parts/ labor  warranty 

•  Nationwide  AJ  service  network 

•  Fast  delivery 

•  Variety  of  models — up  to  1200  baud 

•  Limited  quantities 

•  Use  your  Visa  or  Master  Charge 

Act  now.  First  come,  first  served.  Write  Anderson 
Jacobson,  Inc.,  521  Charcot  Ave.,  San  Jose,  CA 
95131.  Or  call  your  nearest  AJ  office: 

San  Jose,  CA        Rosemont,  IL       Hackensack,  NJ 
(408)  946-2900     (312)  671-7155      (201)  488-2525 


ANIDERSON 
JACOBSON 


Circle  291  on  inquiry  card. 


BYTE  Augubl  1979         203 


Circle  379  on  inquiry  card. 


U.S.  ROBOTICS,  INC. 


PENRIL  300/1  200  MODEM 
Originate/Auto- Answer 


ALL 
NEW 


$799.00 


300  or  1 200  Baud 
Bell  212  Compalible 
FCC  Cerlided 
RS232     . 


Hall/Full  Duplex  on 
Dial-up  Phone  Lines 
I  year  warranty 
Stand  Alone 


PERKIN- 

ELMER 

BANTAM 

$799.00 

All  the  Features  of  the 
Hazeltine  1400  &  LSI  ADM-3A 
Plus 


Upper/Lower  Case 
7  X  10  Char  Matrix 
White  or  Black  Char 
Transparent  Mode 
Addressable  Cursor 


Tab  Function 
Backspace  Key 
Shiftlock  Key 
Print  Key 

Integrated  Numeric 
Pad 


JpH-  I  .b  I    per  month 

Lease-Purchase 


$1095.00 


TELETYPE 
MODEL  43 
KSR 


with  RS232 

10  or  30  CHAR/SEC 

132  COLUMNS 

UPPER/LOWERCASE 


^ 

^^^1 


0-300  Baud 
Crystal  Controlled 


USR-310 

Originate 

Acoustic 

$159.00    Coupler 


Stand  Alone 

RS232 

USR-330 

Originate 

Auto- Answer 

$339.00       Modem 

FCC  Certified  for  Direct  Connection 
to  Phone  Lines 
USR-320  Auto-Answer 

Only  Modem         $319.00 


All  Units  include  a  1  20  day  warranty 
Optional  Maintenance  package  available 


Any  Product  may  be  returned 
within  10  days  for  a  full  refund. 


U.S.  ROBOTICS.  INC. 

1035  W.  LAKE  ST. 

CHICABD,    ILL.       6D6D7 

Sales  (312)733-0497 

General  Offices       (312)  733-0498 
Service  (312)733-0499 


Australian  Tandy 

Users  Club  and 

Software  Exchange 

8th  Bit  is  the  main 
medium  by  which  Software 
Exchange  members  keep  in- 
formed of  what  is  happening 
in  AustraHa.  This  newsletter 
contains  information  on 
what  is  for  sale  and  the 
location, contributions  from 
members,  and  information 
of  general  significance. 
Membership  in  the  Exchange 
is  $10  per  year.  Contact  Pitt 
St  Microcomputer  Centre, 
Second  Floor,  373-375  Pitt 
St,  Sydney  2000 
AUSTRALIA. 


Detroit  Personal 
Computer  Network 

Andrew  Fellman  has  writ- 
ten to  inform  us  that  the 
Detroit  Personal  Computer 
Network  will  be  meeting  in 
August.  This  organization 
was  formed  to  help  micro- 
computer users  discover  and 
exchange  ideas  on  user  pro- 
jects, to  promote  business  or 
financial  gain,  and  for  en- 
joyment. More  information 
may  be  obtained  by  writing 
to  Andrew  at  13043 
McNichols,  Detroit  MI 
48219,  or  calling  (313) 
865-4374. 


Software  of  the 
Month  Club 

Creative  Discount  Soft- 
ware has  announced  the 
opening  of  its  new  Software 
of  the  Month  Club.  The 
new  club  will  have  separate 
branches  for  users  of  the 
Apple  II,  TRS-80,  Ohio 
Scientific,  Exidy,  PET  and 
CP/M  based  systems.  Mem- 
bers will  select  division 
memberships  such  as 
business  applications,  educa- 
tion applications,  high  level 
languages,  games  and  fun 
applications,  and  personal 
and  home  management  ap- 
plications. Membership 
enrollment  applications  are 
available  from  Creative  Dis- 
count Software,  Software  of 
the  Month  Department, 


POB  24-B-67,  Los  Angeles 
CA  90024. 


The  Physicians 
Microcomputer  Report 

The  Physicians  Microcom- 
puter Report  is  a  monthly 
publication  for  doctors  who 
wish  to  become  better  in- 
formed about  the  computer 
and  its  application  in  the 
field  of  medicine.  Some  of 
the  features  include  software 
news,  calculator  corner, 
computers  in  patient  health 
care,  microcomputer  hard- 
ware news,  the  bargain 
market,  and  computer  ar- 
ticles of  special  interest  to 
the  physician.  Additionally, 
the  report  contains  articles 
on  nonmedical  applications 
such  as  linking  your  com- 
puter to  a  stock  portfolio  in- 
formation center.  Another 
intent  of  this  publication  is 
to  facilitate  the  exchange  of 
information  between  physi- 
cians who  own  computers. 
For  this  purpose,  the 
magazine  has  a  listing  of 
user  groups. 

The  Physicians  Microcom- 
puter Report  is  available  for 
$25  a  year,  $12.50  for 
students.  Contact  Dr  Gerald 
M  Orosz,  POB  6483, 
Lawrenceville  NJ  08648. 


BYTE's  eits 


Call  for  Papers 

The  International  Society 
for  Mini  and  Microcom- 
puters (ISMM)  will  hold  an 
international  symposium  on 
microcomputers  and  their 
application  January  30  to 
February  1  1980  in 
Monterey  CA.  The  sym- 
posium will  highlight 
technology,  hardware,  soft- 
ware engineering,  languages, 
systems  architecture,  design 
methodology,  computer  net- 
works, performance  evalua- 
tions, concurrent  processing, 
real  time  processing, 
operating  systems,  portabi- 
lity for  software  systems, 
systems  security,  digital 
signal  processing,  education. 


204        August  1979  ©  BYTE  Publications  Inc 


and  applications.  Send  three 
camera  ready  copies  of  200 
word  abstracts  to  Secretary, 
MIMI-80  (Monterey),  POB 
2481,  Anaheim  CA  92804  by 
September  1  1979.  Notifica- 
tion of  acceptance  will  be 
sent  by  October  1.  Camera 
ready  copies  of  accepted 
papers  are  due  December  15 
1979.  Additionally,  pro- 
posals for  half  day  and  one 
day  tutorials  are  solicited  in 
the  above  areas  and  should 
be  received  by  September  1 
1979. 


Exidy  to  Sponsor 
Software  Contest 


Exidy  Inc,  the  makers  of 
the  Sorcerer  microcomputer, 
are  sponsoring  a  contest  for 
microcomputer  programs 
this  summer.  Four  Sorcerer 
computers  will  be  awarded 
as  grand  prizes.  The  purpose 
of  the  contest  is  to  en- 
courage people  who  have 
written  good  programs  to 
share  their  programs  with 
other  computer  owners. 
Exidy  will  publish    a  book 
featuring  the  best  programs 
entered  in  the  contest.  The 
contest  is  open  to  all  BASIC 
language  computer  programs 
which  will  run  on  the 
Sorcerer.  Prizes  of  free  com- 
puters will  be  awarded  to 
the  program  judged  best  in 
each  of  four  categories: 
business,  education,  fun  and 
games,  and  home  and  per- 
sonal management.  Every 
entrant  will  receive  a  free 
poster  and  a  professionally 
written  program  in  exchange 
for  the  program  they  sub- 
mit. The  contest  runs  from 
June  1  thru  August  31  1979. 
For  further  information, 
contact  Paul  Terrell, 
Marketing  Communications, 
Exidy  Inc,  969  W  Maude 
Ave,  Sunnyvale  CA  94086. 


Department  of  Missing 
Authors 


Once  again  an  author  of  a 
yet-to-be-published  article 
has  moved  and  neglected  to 
inform  us  of  his  new  ad- 
dress. We  therefore  request 
that  James  Cherry,  whose 


last  known  address  was  28 
The  Fenway,  Boston  MA 
02215,  please  contact  us 
with  his  current  address  and 
telephone  number. 


Call  for  Papers  for 

Fifth  International 

Conference  on 

Computer 
Communications 

Technical  papers  for  the 
Fifth  International  Con- 
ference on  Computer  Com- 
munications to  be  held 
October  27  thru  30  1980  in 
Atlanta  GA  are  being 
solicited  for  presentation  at 
the  regular  conference  ses- 
sions and  publication  in  the 
official  proceedings.  The 
conference  is  held  biannually 
by  the  International  Council 
for  Computer  Communica- 
tions as  an  interdisciplinary 
forum  for  discussing  social, 
economic,  political  and 
technological  implications  of 
computer  communication 
networks. 

Topics  for  1980  may  in- 
clude a  wide  range  of  sub- 
jects and  issues  relevant  to 
the  development  and  use  of 
computer  communications 
and  its  effect  on  human 
affairs.  All  papers  must  be 
original,  written  and 
presented  in  English,  and 
cannot  exceed  5,000  words. 
Specific  suggested  subjects 
are:  broad  needs  and  re- 
quirements, social  implica- 
tions, applications,  and 
technology.  Manuscripts 
must  be  typed,  double  spac- 
ed, and  on  one  side  of  the 
paper  only.  A  cover  page 
must  give  the  title,  the  full 
names  of  the  author(s),  the 
affiliation  of  each  author, 
and  the  name,  address,  and 
telephone  number  of  the 
primary  author.  A  100  to 
200  word  abstract  and  a  full 
set  of  illustrations  must 
accompany  the  manuscript. 

Six  copies  of  all  material 
should  be  sent  by  March  1 
1980  to  Dr  J  Salz,  Program 
Chairman,  ICCC  '80,  Bell 
Laboratories  lG-509, 
Holmdel  NJ  07733.  The  Pro- 
gram Committee  would  also 
appreciate  advance  notice  of 
the  intention  to  submit  a 
paper.  ■ 


SUPER 
SOFTWARE! 

MICROWARE  6800  SOFTWARE  IS 
INNOVATION  AND  PERFORMANCE 


INEWI    LISP  Interpreter 

The  programming  language  LISP  offers  exciting  new  possibilities  for 
microcomputer  applications,  A  highly  interactive  interpreter  that  uses 
list-type  data  structures  which  are  simultaneously  data  and  executable 
instructions.  LISP  features  an  unusual  structured,  recursive  function- 
oriented  syntax.  Widely  used  for  processing,  artificial  intelligence, 
education,  simulation  and  computer-aided  design.  6800  LISP  requires 
a  minimum  of  12K  RAIVl. 
Price  $75.00 

A/BASIC  Compiler 

The  ever-growing  A/BASIC  family  is  threatening  old-fashioned 
assembly  language  programming  in  a  big  way.  This  BASIC  compiler 
generates  pure,  fast,  efficient  6800  machine  language'from  easy  to 
write  BASIC  source  programs.  Uses  ultra-fasl  integer  math,  extended 
string  functions,  boolean  operators  and  real-time  operations.  Output  is 
ROrvlable  and  RUNS  WITHOUT  ANY  RUN-Tlf\^E  PACKAGE.  Disk  ver- 
sions have  disl<  I/O  statements  and  require  12K  memory  and  host  DOS. 
Cassette  version  runs  in  8K  and  requires  RT/68  operating  system. 
Price:  Disk  Extended  Version  2.1  $150.00 
Cassette  Version  1.0  $65.00 


I  NEW  I    A/BASIC  Source  Generator 

An  "add-on"  option  for  A/BASIC  Compiler  disk  versions  that  adds  an 
extra  third  pass  which  generates  a  full  assembly-language  output 
listing  AND  assembly  language  source  file.  Uses  original  BASIC  names 
and  inserts  BASIC  source  lines  as  comments.  SSB  and  SWTPC 
Miniflex  version  available. 
Price:  $50,00 


INEWI    A/BASIC  Interpreter 


Here  it  is — a  super-fast  A/BASIC  interpreter  that  is  source-compatible 
with  our  A/BASIC  compiler!  Now  you  can  interactively  edit,  execute 
and  debug  A/BASIC  programs  with  the  ease  of  an  interpreter — then 
compile  to  super  efficient  machine  language.  Also  a  superb  stand- 
alone applications  and  control-oriented  interpreter.  Requires  8K  RAtVI. 
The  cassette  version  is  perfect  for  Motorola  D2  Kits. 
Price:  $75.00 

RT/68  Real  Time  Operating  System 

tvllKBUG — compatible  ROM  that  combines  an  improved  monitor/ 
debugger  with  a  powerful  multitasking  real-time  operating  system. 
Supports  up  to  16  concurrent  tasks  at  8  priority  levels  plus  real  time 
clock  and  interrupt  control.  Thousands  in  use  since  1976  handling  all 
types  of  applications.  Available  on  6830  (MIKBUG-type)  or  2708 
(EPROM-type)  ROM.  Manual  is  a  classic  on  6800  real-time  applications 
and  contains  a  full  source  program  listing. 
Price:  RT68MX  (6830)  $55.00 
RT68MXP  (2708)  $55.00 

6800  CHESS 

A  challenging  chess  program  for  the  6800.  Two  selectable  difficulty 
levels.  Displays  formatted  chess  board  on  standard  terminals.  Re- 
quires 8K  memory.  Machine  language  with  A/BASIC  source  listing. 
Price:  $50.00 

ELIZA 

6800  version  of  the  famous  MIT  artificial  intelligence  program.  The 
computer  assumes  the  role  of  a  psychoanalyst  and  you  are  the  patient. 
This  unusual  program  is  unique  because  the  dialog  with  the  com- 
puter is  in  unstructured  plain  English.  An  impressive  demonstration 
program. 
Price:  $30.00 


Our  software  is  available  for  most  popular  6800  systems  on  cassette  or  diskette 
unless  otherwise  noted.  Disk  versions  available  on  S.S.B.,  SWTPC,  or  Motorola 
MDOS.  Please  specify  wtiich  you  require.  Phone  orders  are  welcomed.  We  accept 
MASTERCHARGE  and  VISA.  We  try  to  ship  orders  within  24  hours  of  receipt. 
Please  call  or  write  if  you  require  additional  information  or  our  free  catalog. 
Mtcroware  software  is  available  for  OEfwl  and  custom  applications. 


MICROWARE 

SYSTEMS    CORPORATION 


P.O.  BOX  4865 

DES  MOINES,  lA  50304 

(515)  265-6121 


August  1979  m  BYTE  Publications  Inc        205 


LISP  Applications  in  Boolean  Logic 


Richard  Weyhrauch 

Stanford  Artificial  Intelligence  Laboratory 

Stanford  University 

Stanford  CA  94305 

and 

Henson  Graves 

Dept  of  Mathematics 

San  Jose  State  University 

San  Jose  CA  95192 


In  LISP,  some  data  structures  can  be  viewed  two  dif- 
ferent ways,  either  as  data  or  program.  This  feature 
makes  LISP  unique  among  high  level  languages.  When 
seen  as  a  program,  LISP  expressions  can  be  executed  and 
return  a  value:  when  seen  as  data,  they  may  be  used  as 
arguments  for  other  programs.  This  means  that  if  we 
think  about  a  LISP  program  as  a  piece  of  data  we  can 
write  programs  directly  in  LISP  which  transform  them  in- 
to more  useful  programs. 

We  use  LISP  to  imitate  the  manipulations  that  are  done 
by  engineers  when  designing  combinatorial  circuits.  In 
this  sense  LISP  can  be  used  as  a  calculator  for  Boolean 
logic. 

The  examples  presented  here  are  well  known  to  anyone 
who  has  studied  a  little  hardware  design.  The  purpose  of 
this  article  is  to  give  beginners  with  LISP  some  idea  of 
what  LISP  programs  look  like  and  how  some  interesting 
symbolic  manipulations  can  be  represented  in  a  natural 
way  using  LISP.  It  is  written  primarily  with  novices  in 
mind.  For  this  reason  there  are  some  elementary  remarks 
about  how  LISP  actually  works.  The  code  in  this  article 
was  written  as  examples  of  LISP  style  programming. 
What  we  have  tried  to  do  is  present  some  programs  as 
they  might  be  written  in  existing  LISP  systems.  Of  course 
the  style  is  ours. 

We  illustrate  the  use  of  the  recursive  data  structures, 
lists  and  S-expressions,  and  the  use  of  lambda  abstraction 
as  a  control  structure  to  facilitate  recursive  transforma- 
tions on  them. 

Combinatorial  Circuits  as  Boolean  Logic 

One  learns  in  circuit  theory  that  combinatorial  circuits, 
those  with  no  feedback,  may  be  represented  as  Boolean 


or  propositional  expressions.  Although  these  are  the 
simplest  circuits  that  an  engineer  might  use,  this  article  is 
meant  to  give  simple  examples  of  how  LISP  can  be  used. 
For  example  the  circuit  in  figure  1  is  represented  by  the 
Boolean  expression: 

(Xi  A  X2). 

We  may  view  this  expression  as  specifying  a  Boolean 
function.  We  may  also  think  of  this  expression  as  a 
Boolean  program  which  may  be  evaluated  using  the  or- 
dinary rules  of  logic.  There  are,  of  course,  many  different 
expressions  which  have  the  same  behavior. 

A  circuit's  behavior  can  be  described  by  a  Boolean 
function.  The  Boolean  function  for  (XI  A  X2)  may  be 
represented  by: 


<1 

X2 

F  (XI, 

0 

0 

1 

0 

1 

0 

1 

0 

0 

1 

1 

0 

Representing  Boolean  Expressions 

Both  the  circuit  diagrams  and  Boolean  expresions  are 
concrete  representations  of  an  abstract  data  structure, 
which  we  refer  to  as  WFFs  (-well-formed  propositional 
formulas).  In  LISP  we  use  a  concrete  representation  of 
well-formed  propositional  formulas  as  lists.  For  example, 
we  represent  the  expression: 

(P  V  Q)  A  R 


Figure  1:  A  simple  digital  circuit  whose 
function  can  he  defined  by  the  Boolean 
expression  (XI  A  X2) 


XI  O- 


xz  [!>■ 


^ 


^ 


X2 


o 


-C>  XIaX2 


206        Augusl  1979  ©  BYTE  Publications  Inc 


as  the  list: 

(AND  (OR  P  Q)  R) 

We  follow  usual  programming  language  practice  and 
describe  the  lists  which  represent  well-formed  proposi- 
tional  formulas  using  a  BNF(Backus  Naur  form)  grammar 
as  in  table  1. 

We  can  recognize  which  lists  represent  well-formed 
propositional  formulas  by  writing  a  LISP  program  which 
takes  a  list  as  input  and  whose  value  is  T  if  the  list 
represents  a  WFF  and  NIL  otherwise.  This  program  can 
be  viewed  as  a  parser  for  the  language  generated  by  this 
grammar.  It  has  a  recursive  definition  which  parallels  the 
grammar: 

(DEFINE  ISWFF  (E) 
(COND  ((ISCONST  E)  T) 

((ISVAR  E)  T) 

((ISUNARY  E)  (ISWFF  (body  E))) 

((ISBINARY  E)  (AND  (ISWFF  (Ihs  £)) 
(ISWFF  (rhs  E))) 

(T  NIL)  ))  ) 

The  subfunctions  body,  Ihs,  rhs,  ISCONST,  ISVAR, 
ISUNARY  and  ISBINARY  must  also  be  defined.  Their 
definition  reflects  our  specific  representation  of  well- 
formed  propositional  formulas  in  LISP.  For  example: 

(DEFINE  ISUNARY  (E) 

(EQ  (CAR  E)  (QUOTE  NOT))  ) 

Evaluation  of  these  defining  programs  has  the  side  ef- 
fect of  storing  the  function  definition  in  memory.  Subse- 
quently, the  name  ISWFF  may  itself  be  used  in  a  pro- 
gram. LISP  represents  function  application  by  evaluating 
the  list  whose  first  element  is  the  function  and  the  remain- 
ing elements  are  the  arguments.  Evaluating  the  program: 

(ISWFF  (QUOTE  (AND  (OR  P  Q)  R))) 

returns  the  value  T. 

For  any  expression  A  the  evaluation  of  (QUOTE  A)  is 
simply  A.  This  is  how  we  make  LISP  treat  A  as  data. 
Thus  in  the  above  program  the  argument  to  ISWFF  is 
treated  as  data. 

Representing  Boolean  Programs 

If  we  consider  T  as  representing  true  and  NIL  as  false 
then  we  can  represent  the  usual  Boolean  expressions  as 
LISP  programs  using  COND.  COND  is  LISP's  version  of 
IF-THEN-ELSE. 

(DEFINE  NOT  (A) 

(COND  (A  NIL)  (T  T))  ) 

(DEFINE  OR  (A  B) 

(COND  (A  T)  (T  B))  ) 

(DEFINE  AND  (A  B) 

(COND  (A  B)  (T  NIL))  ) 

(DEFINE  IMPLIES  (A  B) 
(OR  (NOT  A)  B)  ) 


<wff> 
<  const  > 
<var> 
<unary> 
<binary> 


<const>   I  <var>   |  <unary>  |  <binary> 

TjNIL 

<  identifier> 

(NOT  <wff>) 

(AND  <wff>  <wff>)  I  (OR  <wff>   <wff>)  I 

(IMPLIES  <wff>   <wff>)  I  (EOUIV  <wff>   <wff>) 


Table  1:  In  LISP,  list  representations  for  WFFs  (well-formed  pro- 
positional  formulas)  are  described  using  a  Backus  Naur  form  of 
grammar.  In  LISP,  T  and  NIL  are  generally  used  as  the  constants 
for  true  and  false  respectively.  These  correspond  to  1  and  0  in 
digital  circuit  diagrams. 


(w,v) 

w 

W    V   V 

WAV 

WSV 

W  D   V 

f.f 

t 

f 

f 

t 

t 

f.t 

t 

f 

f 

f 

t 

t,f 

f 

t 

f 

f 

f 

t,t 

f 

t 

t 

t 

t 

Table  2:  Examples  of  truth  tables  for  Boolean  algebra.  For  two 
inputs  (w  and  v)  Boolean  results  are  shown  for  the  negated  value 
of  w,  w  OR  V,  w  AND  v,  equality,  and  implication. 


(DEFINE  EQUIV  (A  B) 

(OR   (AND  A  B)   (AND   (NOT  A)   (NOT  B))   ) 

Notice  that  we  have  defined  IMPLIES,  and  EQUIV  in 
terms  of  NOT,  AND,  and  OR.  These  definitions  mean 
that  well-formed  propositional  formulas  like: 

(AND  (OR  T  NIL)  T) 

are  valid  LISP  programs  whose  evaluation  returns  a  truth 
value  (ie:  T  or  NIL).  These  values  correspond  to  those 
determined  by  the  usual  truth  table  evaluation  of  Boolean 
expressions  as  reviewed  in  table  2. 

For  example,  if  in  the  well-formed  propositional 
formula  (AND  (OR  P  Q)  R),  we  replace  P  by  T,  Q  by 
NIL,  and  R  by  T:  by  observing  that  (t  V  f)  =  t  and  (t  A 
t)  =  t,  we  calculate  the  value  of  this  well-formed  proposi- 
tional formula  as  T.  Logicians  call  this  kind  of  assignment 
of  truth  values  to  the  atoms  an  interpretation  of  the  well- 
formed  propositional  formula. 

One  question  we  should  ask  is  what  happens  if  we  try 
to  evaluate  a  well-formed  propositional  formula  which 
contains  variables  rather  than  simply  T  and  NIL.  For 
example: 

(AND  (OR  P  Q)  R)) 

will  return  an  error  message  saying  that  P  is  an  undefined 
variable. 

One  thing  we  can  use  to  make  the  substitution  of  T  and 
NIL  to  these  variables  is  the  lambda  construction. 
Evaluation  of: 

((LAMBDA  (P  Q  R)  (AND  (OR  P  Q)  R)  (T  NIL  T)) 

will  result  in  T. 

Viewing  Programs  as  Data 

Evaluation  of  a  Boolean  program  corresponds  to  a 
simulation  of  the  circuit  represented  by  the  program.  We 


August  1979  ©  BYTE  Publications  Inc        207 


may  also  want  to  use  LISP  to  answer  questions  about  our 
circuits.  We  will  consider  two  standard  questions  asked 
about  programs  for  these  circuit  programs: 

•  When  do  two  programs  compute  the  same  func- 
tion? (analysis) 

•  Given  an  I/O  (input/output)  specification  con- 
struct a  program  with  this  behavior,  (synthesis) 

Analysis 

Analysis  of  a  program  starts  with  the  question — what 
is  its  behavioral  description?  One  may  then  consider 
questions  of  efficiency.  The  complete  input/output 
description  is  expressed  by  the  Boolean  function.  Above 
we  have  called  this  the  function  computed  by  the  pro- 
gram. In  logic  this  function  is  just  the  set  of  all  interpreta- 
tions of  the  well-formed  propositional  formula.  The 
Boolean  function  for  the  expression  (X  A  Y)  V  Z  ex- 
pressed as  a  table  is: 


X,Y,Z) 

(X  A  Y)  V 

0,0,0 

0 

0,0,1 

1 

0,1,0 

0 

0,1,1 

1 

1,0,0 

1 

1,0,1 

1 

1,1,0 

0 

1,1,1 

1 

If  a  well-formed  propositional  formula,  w,  has  n  vari- 
ables then  there  are  2"  interpretations.  Thus  the  I/O  table 
has  2"  entries.  Complete  behavioral  knowledge  could  be 
obtained  by  making  the  2"  possible  evaluations.  Often 
only  partial  behavioral  knowledge  is  needed  and  this  may 
sometimes  be  obtained  without  complete  simulation. 

Two  programs  are  called  equivalent  when  they  com- 
pute the  same  function,  i.e.,  they  have  the  same 
behavior.  A  well-formed  propositional  formula  which 
evaluates  to  T  under  all  interpretations  is  called  a 
tautology.  The  well-formed  propositional  formula  (IM- 
PLIES (AND  P  Q)  (OR  R  P))  is  a  tautology.  Two  well- 
formed  propositional  formulas  wl  and  w2  are  called 
equivalent  if  (EQUIV  wl  w2)  is  a  tautology.  This  means 
that  wl  and  w2  have  the  same  I/O  behavior.  Thus  for 
circuit  programs  the  notion  of  equivalence  coincides  with 
the  logic  notion  of  equivalence. 

One  simple  way  to  determine  if  a  well-formed  proposi- 
tional formula  is  a  tautology  is  to  compute  all  its  inter- 
pretations. This  brute  force  technique  can  be  improved 
upon  by  using  an  algorithm  introduced  by  Quine  in  1950. 
Our  experience  with  the  FOL  project  at  the  Stanford  Ar- 
tificial Intelligence  Laboratory  indicates  that  this 
algorithm  represents  considerable  improvement  over  the 
listing  of  all  cases.  It  is  informally  described  as  follows. 

Choose  one  variable  p  and  make  two  new  expressions, 
one  obtained  by  substituting  t  for  p  in  the  well-formed 
propositional  formula  and  the  other  obtained  by 
substituting  f  for  p  in  the  well-formed  propositional  for- 
mula. Take  the  conjunction  of  the  two  expressions,  and 
use  the  following  simplification  rules. 


/^From  the 
'   Originator 
of  the 

TRS-80® 

Project 

FORTRAN 

Now  Sale  Priced! 

Comparable  to  compilers  on  large 
mainframes  and  minicomputers.  All 
of  ANSI  Standard  FORTRAN  X3.9- 
1966  is  included  except  COMPLEX 
data  type.  Therefore,  users  may 
tal<e  advantage  of  the  many  appli- 
cations programs  already  written  in 
FORTRAN.  Pacl<age  includes: 

FORTRAN  Compiler 

rviacro  Assembler  (Z80) 

Linker 

Library 

Lib  IVlanager  (Not  in  TRS-DOS 
version)  Price  -$as©;e© 

For  this  month  only 

Sale  Priced  at  $250.00 
IVlanual  $25.00 
(Specify  TRS-DOS  or  CP/M  versions) 

CP/M  is  a  registered  trademarl<  of  Digital  Research  Corp. 
TRS-80  is  a  registered  trademari<  of  Radio  Sfiacl<. 


PASCAL 

UCSD  Pascal,  the  powerful  general 
purpose  language  system,  de- 
veloped for  large  and  complex 
programs  is  now  available  for  your 
TRS-80. 

The  FIVIG/UCSD  PASCAL  system 
opens  a  new  generation  of  value 
for  your  TRS-80.  Package  in- 
cludes: 

Operating  System 

Screen  Editor 

Z80  Macro  Assembler 

Debugger 

Pascal  Compiler 

Utilities  and  System 

Reference  Book  $150.00 

Requires  48K  System 
with  2  Drives 

Available  without 
Macro  Assembler 
Linker  and  Debugger     $100.00 


CP/M  OPERATING 
SYSTEM 

Editor,  Assembler,  Debugger  and 
Utilities  for  8080  and  Z80  Sys- 
tems. Up  to  four  floppy  disks. 
Package  includes: 
CP/M  System  Diskette  SVa" 
CP/M  Features  and 
Facilities  Manual 
CP/M  Editor's  Manual 
CP/M  Assembler  Manual 
CP/M  Debugger  Manual 
CP/M  Interface  Guide        $150.00 
(Set  of  5  manuals $25.00) 


Call  or  Write 
Ir-   for  Complete  Information 


CORPORATION 


A  Division  of  Applied  Data  Corporation 
P.  O.  Box  16020,  Fort  Worth,  Texas  76133.  (817)  294-2510 


208        August  1979  ©  BYTE  Publications  Inc 


Circle  134  on  inquiry  card. 


Listing  1:  A  program  can  he  written  to  look  for  tautologies.  Two 
well-formed  propositional  formulas  are  said  to  be  equivalent  if 
they  both  exhibit  the  same  behavior. 

(DE  TAUT  (WFF)  (TAUT1  (SIMP  WFF))) 

(DE  TAUT1  (W) 
(COND 
({ISCONST  W)  W) 
(T  (TAUT 

((LAMBDA  (X)  (MKAND  (SUBSTTXW) 

(SUBST  NIL  X  W))) 
(FIRSTVAR  W)) )))) 


(DESIMP(W) 

(COND  ((OR  (ISCONST  W)  (ISVAR  W))  W) 

((ISNOT  W)  (SIMPNOT  (SIMP  (body  W)))) 
((ISOR  W)  (SIMPOR  (SIMP  (Ihs  W)) 
(SIMP(rhs  W)))) 
((ISAND  W)  (SIMPAND  (SIMP  (Ihs  W)) 
(SIMP(rhs  W)))) 
((ISIMPLIES  W)  (SIMPIMP  (SIMP  (Ihs  W)) 
(SIMP(rhs  W)))) 
((ISEQUIVW)  (SIMPEQUIV  (SIMP  (Ihs  W)) 

(SIMP(rhs  W)))) )) 


(DE  SIMPNOT  (W)  (COND  ((ISFALSE  W)  T) 
((ISTRUE  W)  NIL) 
(T  (MKNOT  W)))) 

(DE  SIMPOR     (W1  W2)  (SIMPANDOR  '  OR  W1  W2  W1  W2)) 

(DE  SIMPAND  (W1  W2)  (SIMPANDOR  '  AND  W1  W2  W2  W1)) 

(DE  SIMPIMP    (W1  W2)  (SIMPOR  (SIMPNOT  W1)  W2)) 

(DE  SIMPEQUIV  (W1  W2) 

(SIMPAND  (SIMPIMP  W1  W2)(SIMPIMP  W2  W1))) 

(DE  SIMPANDOR  (OP  W1  W2  VI  V2) 

(COND((ISTRUE  W1)  VI) 
((ISTRUE  W2)  V2) 
((ISFALSE  W1)V2) 
((ISFALSE  W2)V1) 
(T  (MKOP  OP  W1  W2)))) 

(DE  FIRSTVAR  (W1) 

(COND  ((ISVAR  W1)W1) 

((UNARY  W1)  (FIRSTVAR  (body  W1))) 
((FIRSTVAR  (Ihs  W1))) 
(T  (FIRSTVAR  (rhsW1))))) 

(DE  ISIMPLIES  (X)  (EO  X  T)) 

(DE  ISFALSE  (X)  (EO  X  NIL)) 

(DE  ISNOT  (X)  (EO  (CAR  X)  (OUOTE  NOT))) 

(DE  ISOR  (X)  (EO  (CAR  X)  (QUOTE  OR))) 

(DE  ISAND  (X)  (EQ  (CAR  X)  (QUOTE  AND))) 

(DE  ISIMPLIES  (X)  (EQ  (CAR  X)  (QUOTE  IMPLIES))) 

(DE  ISEOUIV  (X)  (EQ  (CAR  X)  (QUOTE  EQUIV))) 

(DE  ISEQOR  (X)  (EQ  X  (QUOTE  OR))) 

(DE  Ihs  (WFF)  (CADR  WFF)) 

(DE  rhs  (WFF)  (CADDR  WFF)) 

(DE  body  (WFF)  (CADR  WFF)) 

(DE  MKOP  (OP  X  Y)  (LIST  OP  X  Y)) 

(DE  MKAND  (X  Y)  (MKOP  (QUOTE  AND)  X  Y)) 

(DE  MKNOT  (X)  (LIST  (QUOTE  NOT)  X)) 

(DE  ISCONST  (W)  (OR  (EQ  W  T)  (EQ  W  NIL))) 

Listing  1  continued  on  page  210 


i  :=  t 

t  D  w 

= 

w 

f  D  w 

= 

t 

t  V  w 

= 

t 

t  A  w 

= 

w 

r:=  f 

W  D  t 

= 

t 

w  D  f 

= 

w 

f  V  w 

= 

w 

f  A  w 

= 

f 

Repeat  the  branching  and  simplifying  until  all  branches 
consist  of  either  t  or  f .  If  all  branches  terminate  in  t,  the 
well-formed  propositional  formula  is  a  tautology,  other- 
wise it  is  not.  Applying  the  Quine  algorithm  to  the  well- 
formed  propositional  formula,  (p  A  q)  D  (r  V  p) 
yields: 


((t  A  q)  D  (r  V   t))  A  ((f  A   q)  D 

(q  D  t)  A  (f  D  r) 

t  A  t 
t 


V  f)) 


The   LISP   program   in   listing   1   represents    the   Quine 
algorithm. 

The  evaluation  of; 

(TAUT  (QUOTE  (IMPLIES  (AND  P  Q)  (OR  R  P)))) 

returns  T.  Notice  we  have  used  the  Boolean  functions 
IMPLIES,  AND,  and  OR  in  these  definitions. 

Synthesis 

Consider  the  problem  of  synthesizing  d  program  with 
its  I/O  behavior  specified  by  the  table: 


X 

0 
0 

1 
1 


0 

1 

0 

1 


F(X,Y) 
0 

1 
1 

0 


This  table  may  be  represented  by  the  list: 


(  (X 
(0 
(0 

(1 

(1 


Y) 
0 

1 

0 

1 


0) 

1) 

1) 

0)     ) 


A  well-formed  propositional   formula  which  has   this 
behavior  may  be  constructed  by  observing  that: 

F(X,Y)  =  1  if  either  X  =  0  and  Y  =  1 
or 
X  =  1  and  Y  =  0. 

This  Boolean  function  may_be  realized  by  the  well- 
formed  propositional  formula  (X  A  Y)  V  (X  A  Y).  This 
well-formed  propositional  formula  has  a  very  special 
form.    Well-formed  propositional   formulas  which   are 

TcAf  continued  on  page  211 


August  1979  ©  BYTE  Publications  Ire        209 


Circle  205  on  inquiry  card. 


DISCOUNT  PRICES 

Microcomputers  &  Peripherals 

ITS 
YTES 
OOKS 
ARGAINS 


m 

ill! 

-it 

ra. ..-.-..   .V.--   .-...1 

Cromemco  •  SWTPC  •  Lear-Siegler 

Hazeltine  •  RCA  •  North  Star 
Verbatim  •  Perkin  Elmer  and  others 

Fast,  off  the  shelf  delivery. 
Call  TOLL  FREE  800/523-5355 

MARKETLINE  SYSTEMS,  Inc. 

2337  Philmont  Ave.,  Huntingdon  Valley,  Pa.  19006 
215/947-6670  •  800/523-5355 

Dealer  Inquiries  Invited 


BYTE 

BACK  ISSVU 

fOn  MLE 

The  following  issues  are  available: 

March,  May  thru  December,  1977;  February  thru 

October,  1978;  and  January,  February,  April,  May,  June 

and  July  1979. 

Cover  price  for  each  issue  thru  August  '77  is  $1.50  plus 

25<t  postage  and  handling  ($3.50  total  foreign). 

September  '77  thru  '79  issues  are  $2.00  plus  50<l 

postage  and  handling 


($4.00  total  foreign). 
Send  requests 
with 

payment 
to: 

BYTE 

Publications 

70  Main  St. 

Peterborough 

NH 

03458 

Attn: 

Back  Issues 


Listing  1  continued  from  page  209: 

(DE  ISVAR  (W)  (AND  (ATOM  W)  (NOT  (NUMBERP  W)))) 

(DE  UNARY  (W)  (EQ  (CAR  W)  (QUOTE  NOT))) 

(DE  BINARY  (W) 
(OR  (OR  (OR  (EQ  (CAR  W)  (QUOTE  AND)) 
(EQ  (CAR  W)  (QUOTE  OR))) 
(EQ  (CAR  W)  (QUOTE  IMPLIES))) 
(EQ  (CAR  W)  (QUOTE  EQUIV)))) 


(DEFINE  SYNTHESIS  (L) 
(mkor  (REVERSE  (CAR  L))  (REVERSE  (CDR  L)))) 

(DEFINE  mkand  (V  L) 
(PROG  (X) 

(COND  ((EQUAL  (CAR  L)  0)  (RETURN  NIL))) 
(SETO  L  (CUR  L)) 

(SETQ  X  (COND  ((EQUAL  (CAR  L)  0)  (LIST  (QUOTE  NOT)  (CAR  V))) 
(T  (CAR  V)))) 
L1         (SETQ  V  (CDR  V)) 
(SETQ  L  (CDR  L)) 
(COND  ((NULL  L)  (RETURN  X))) 
(SETQ  X 

(CONS  (QUOTE  AND) 
(CONS  (COND 

((EQUAL  (CAR  L)  0)  (LIST  (QUOTE  NOT)  (CAR  V))) 
(T  (CAR  V)))  (LIST  X)))) 
(GO  LI))) 

(DEFINE  mkor  (V  L) 
(PROG  (X) 

(SETQ  X  (mkand  V  (REVERSE  (CAR  L)))) 
LI         (SETQ  L  (CDR  L)) 

(COND  ((NULL  L)  (RETURN  X))) 

(SETO  X  (CONS  (QUOTE  OR)  (CONS  (mkand  V  (REVERSE  (CAR  L)))  (LIST  X)))) 

(GO  L1))) 


Listing  2:  A  well-formed  propositional  formula  which  is  a  sum 
of  products  with  each  summand  having  literal  factors  is  said  to 
be  in  disjunctive  normal  form.  Any  Boolean  function  F(Xl,  .  .  . 
Xn)  of  n  variables  may  be  described  by  a  well-formed  proposi- 
tional formula  in  disjunctive  normal  form.  This  program  con- 
structs a  well-formed  propositional  formula  in  disjunctive 
normal  form. 


(DE  PN  (WFF  Z) 
(COND  ((ATOM  WFF)  (COND  ((ISEQOR  Z)  (MKNOT  WFF))  (T  WFF))) 
((ISNOT  WFF)  (PN  (body  WFF)  (FLIP  Z))) 
(dSEQUIV  WFF) 
(MKOP  Z 

(MKOP(FLIPZ) 

(PN  (Ihs  WFF)  (QUOTE  OR)) 
(PN  (rhs  WFF)  (QUOTE  AND))) 

(MKOP  (FLIP  Z) 

(PN  (Ihs  WFF)  (QUOTE  AND)) 
(PN  (rhs  WFF)  (QUOTE  OR))))) 
((ISIMPLIES  WFF)  (MKOP  (FLIP  Z) 

(PN  (Ihs  WFF)  (FLIP  Z)) 
(PN  (rhs  WFF)  Z))) 
({ISAND  WFF)  (MKOP  Z 

(PN  (Ihs  WFF)Z) 
(PN  (rhs  WFF)  Z))) 
((ISOR  WFF)  (MKOP  (FLIP  Z) 

(PN  (Ihs  WFF)  Z) 
(PN  (rhs  WFF)  Z)))  )) 

(DE  FLIP  (Z)  (COND  ((EQ  Z  (QUOTE  OR))  (QUOTE  AND))  (T  (QUOTE  OR)))  ) 

Listing  3:  Any  well-formed  propositioiial  formula  may  be 
transformed  into  disjunctive  normal  form.  This  recursive  LISP 
program  uses  the  rules  described  in  the  text  to  complete  the 
transformation. 


210        August  1979  ©  BYTE  Publications  Inc 


Circle  316  on  inquiry  card. 


Text  continued  from  page  209: 

either  variables  or  the  negation  of  variables  are  called 
literals.  The  above  well-formed  prepositional  formula  is 
an  example  of  a  sum  of  products  where  the  factors  of 
each  summand  is  a  literal.  A  well-formed  propositional 
formula  of  this  type  is  said  to  be  in  DNF  (disjunctive  nor- 
mal form).  _ 

Thewell-formed  propositional  formula  (X  A  Y)  V 
(X  A  Y)  was  constructed  by  looking  at  each  row  of 
the  above  table  which  has  the  value  1.  For  each  such  row 
we  form  a  conjunction  containing  those  variables  with 
value  1  and  the  negation  of  those  with  value  0.  We  finish 
by  taking  the  disjunction  of  all  these  conjunctions.  Any 
Boolean  function  F(Xl,...Xn)  of  n  variables  may  be 
realized  by  a  well-formed  propositional  formula  in  dis- 
junctive normal  form  in  this  way.  The  code  in  listing  2 
uses  the  list  representation  of  function  tables  displayed 
above  and  constructs  a  well-formed  propositional  for- 
mula in  disjunctive  normal  form.  Every  well-formed  pro- 
positional  formula  may  be  put  into  disjunctive  normal 
form.  The  following  transformation  rules  applied  to  a 
well-formed  propositional  formula  w  as  long  as  any 
simplifications  can  be  made  to  yield  a  disjunctive  normal 
form  equivalent  to  w. 

(wl  =  w2)  :  =  ((wl  D  w2)  A   (w2  D  wl)) 
(wl  D  w2)  :=  ((wl)  V  w2) 
((wl))  :=  wl 


(wl  A  w2)  :=  (wl)  V  (w2) 


(wl  V  w2)  :=  (wl)   A  (w2) 

(wl  A   (w2   V  w3))  :=  ((wl  A  w2)  V  (wl  A  w3)) 

((wl  V  w2)  A   w3)  :  =  ((wl  A  w3)  V  (w2  A  w3)) 

These  rules  may  also  be  converted  into  a  recursive  LISP 
program  as  in  listing  3. 

The  program  PN  (push  negation)  removes  EQUIV  and 
IMPLIES,  pushes  all  negations  into  the  well-formed  pro- 
positional  formula  so  that  NOTs  only  appear  as  part  of  a 
literal.  PN  works  by  "remembering"  how  many  NOTs  it 
has  seen.  This  is  kept  track  of  by  a  flag  which  is  AND 
when  the  number  is  even  and  OR  if  it  is  odd. 

DNFl  then  applies  the  distributive  law  until  the  for- 
mula is  in  disjunctive  normal  form.  Thus  we  compute  the 
disjunctive  normal  form  of  a  well-formed  propositional 
formula,  w,  by  evaluating: 

(DNF  (QUOTE  w)). 

Conclusion 

In  this  short  paper  we  have  given  some  examples  of  us- 
ing LISP  data  structures  in  several  different  ways  at  once 
with  examples  from  circuit  design.  These  are  not  the  only 
examples  we  could  have  chosen.  A  natural  extension  is 
the  set  of  programs  which  deal  not  only  with  synthesis 
and  analysis  but  with  the  optimization  of  circuits.  That 
is,  construct  a  program  with  a  specified  behavior  which 
is  by  some  measure  best.  For  example,  we  could  write 
code  to  compute  the  minimal  sum  of  products  representa- 
tion of  a  circuit  where  each  product  is  a  prime  implicant. 
This  is  the  typical  kind  of  thing  studied  in  courses  on 
combinatorial  circuits.  ■ 


CATCH  THE 

S-100INC. 

BUS! 


Imsai  PCS  80/10  "8080"  Kit 

Shugart  800-R  8"  Disk  Drive 

Georgia  Magnetics  8" 
Diskettes  Soft  Sectored  per 
Box  of  10 

Godbout  8K  Static  "Unkit" 

SSM  VB-2  Video  Board  Kit 

Dynabyte  16K  Static  Memory 
Board  250  nanoseconds 


OUR 
LIST  SPECIAL 

PRICE  CASH 

PRICE 


750.00  625.00 

610.00  425.00 

45,00  30.00 

149.00  118.00 

159.00  125.00 

555.00  440.00 


Call  for  Our  Prices  Dn: 

Cromemco,  IMSAI,  Vector  Graphic,  North  Star,  Sanyo, 

Hazeltlne,  IMC  plus  Most  Other  Major  Lines. 

Subject  to  Available  Quantities  •  Prices  Quoted  include  Cash  Discounts. 
Shipping  &  Insurance  Extra. 

Bus    S-iDD,inc. 

Address     7  White  Place 

Clark,  N.J.  07066 
Inlerface     201-382-1318 


Zc  -  SYSTEMS 


64K  RAM  BOARD 


The  Zs-SYSTEMS  64K  RAM 
board  is  designed  to  operate 
in  any  Z80  based  microcom- 
puter having  S-100  bus.  It 
uses  16K  dynamic  RAM  chips, 
&  features: 

— Board  select 

— Bank  select 

— Transparent  on-board 
refresh 

— 2  or  4MHz  operation 
(w/  no  wait  state) 

— Memory  disable 

FLOPPY  DISK 
CONTROLLER 

Handles  with  no  madihcation 

up  to: 
'  4  standard  8"  drives 

(Shugart  or  compatible)  or 
'  3  minidrives  5" 
Run  with  2  or  4  UHz  CPU 


Compatible  with  Cromemco 

system,  Fully  assembled, 

burned  in,  &  tested 

Available  from  stock 

to  60  days 

As  low  as  $500.00  in 

quantities  of  100 

Price  of  one $649.00 

PC  board  only $59.00 

With  16K  RAM $359.00 

Plus  shipping  charges 


Use  CP/M  Disk  Operating  System 
Using  the  1771  LSI  controller 

Price  of  one $245.00 

PC  board  only $35.00 


%EiiD  FOR  FREE  INFORMATION 

6  months  warranty  on  our  boards  with  normal  use 

Zs  SYSTEMS 

PO  Box  1847,  San  Diego,  CA  92112 
(714)  447-3997 


Circle  401  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        211 


Assembly 
Language  Switching 


Ppcf psoaoRK^  OuicMes 


Ira  Chayut 

Bell  Laboratories 

IMaperville  I L  60540 

When  programming  in  assembly  language, 
it  is  often  useful  to  borrow  the  tools 
commonly  available  to  high  level  language 
programmers.  One  such  tool  is  the  switch 
construct,  or  multi-way  jump.  A  switch 
steers  program  execution  to  one  of  a  number 
of  memory  locations,  depending  on  a  test 
value.  The  switch  may  be  implemented  as  a 
series  of  compares  and  conditional  jumps. 
An  alternate  implementation  is  to  create 
the  switch  with  a  subroutine  and  case  tables. 
A  case  table  can  be  of  variable  length;  it  lists 
values  to  be  tested  for  and  the  associated 
addresses  to  which  program  control  may  be 
passed.  In  addition,  a  default  address  is 
included  in  the  list.  If  the  test  value  is  not 
equal  to  any  of  the  values  in  the  list, 
program  execution  continues  at  the  default 
address. 

One  possible  use  of  the  switch  is  to 
decode  1 -character  commands  and  jump  to 


Listing  7:  SWITCf^,  a  program  to  perform  multi-way  jumps.  SWITCI-I  is 
entered  via  a  jump  witJi  register  A  containing  tiie  test  value  and  register  pair 
HL  containing  the  starting  address  of  a  case  table.  The  format  of  the  case 
table  is  any  number  of  3  byte  case  entries  followed  by  a  3  byte  default  entry. 
Each  case  entry  consists  of  a  I  byte  case  value  followed  by  a  2  byte  address. 
The  default  entry  consists  of  a  byte  containing  hexadecimal  FF  followed  by  a 
2  byte  address.  If  the  test  value  contained  in  register  A  is  equal  to  a  case 
entry,  a  jump  to  the  associated  address  is  executed.  If  no  match  is  found,  a 
jump  to  the  address  of  the  default  entry  is  executed.  Since  the  default  value  is 
hexadecimal  FFa  case  value  of  FF  is  not  allowed. 

Routine  SWITCH  does  not  execute  a  return  Itself  If  it  is  entered  via  a  call 
instruction,  the  routine  indicated  in  the  case  table  should  contain  returns  to 
the  calling  program. 


get  case  value 

point  to  case  address 

case  and  test  values  equal? 
-yes,  prepare  to  jump 
-no,  case  entry  equals  FF? 

-yes,  prepare  to  jump 

-no,  point  to  next  case  entry 

try  next  case 

get  low  byte  of  case  address 


SWITCH: 

MOV 

B,M 

INX 

H 

CMP 

B 

JZ 

SW01 

INR 

B 

JZ 

SW01 

INX 

H 

INX 

H 

JMP 

SWITCH 

SW01: 

MOV 

B,M 

INX 

H 

MOV 

H,M 

MOV 

L,M 

PCHL 

get  high  byte  of  case  address 
put  low  byte  in  L 
jump  to  case  address 


212        August  1979  ©  BYTE  Publicalions  Inc 


Circle  392  on  inquiry  card. 


Listing  2:  Example  use  of 
SWITCH  routine.  The 
value  to  be  tested  is  put  in 
register  A  by  the  call  to 
routine  GET.  In  this  case 
we  are  checking  I -charac- 
ter commands  for  addition 
and  subtraction.  If  the 
character  is  neither  a  sub- 
traction nor  an  addition 
symbol,  the  routine  exits 
at  the  default  jump. 


the  appropriate  servicing  routine.  The 
default  address  might  be  the  start  of  a 
section  of  code  to  print  out  an  error 
message. 

Listing  I  contains  the  switch  procedure 
for  the  8080  processor.  A  section  of  code 
and  a  case  table  illustrating  the  switch's  use 
appear  in  listing  2." 


CALL  GET 

;  get  a  character 

LXI       H.CTBL 

;  point  to  case  table 

JMP      SWITCH 

;  decode  command 

ADD:      •   •  ■ 

;  add  routine 

SUB:       ■   •  • 

;  subtract  routine 

ERR:       •   •  • 

;  invalid  command  handler 

;  case  table  follows 

CTBL:DB  '+' 

;  add  command 

DWadd 

DB  ■-■ 

;  subtract  command 

DWsub 

DB  FFH 

;  default,  error 

DWerr 

Turn  Your  KIM 
into  a  Metronome 


David  Kellerman 
1047  Schuyler  Dr 
Endicott   NY  13760 


Using  the  program  described  in  listing  1 
(on  page  214)  and  a  tape  recorder,  readers 
can  transform  their  KIM-1  computers  into 
metronomes.  The  main  part  of  the  program 
consists  of  three  nested  timing  loops  used  to 
periodically  invert  the  line  going  to  the  tape 
recorder.  The  resulting  square  wave  pulse 
is  audible  as  a  click  through  the  tape 
recorder's  speaker  when  the  monitor  switch 
is  on  and  the  tape  recorder  is  set  as  if  a  tape 
were  being  recorded.  If  your  recorder  has  no 
monitor  switch,  simply  make  a  recording  of 
the  clicks  and  play  it  back. 

To  use  the  program,  set  hexadecimal 
memory  locations  0000  and  0001  equal  to 
the  appropriate  values  for  the  desired  click 
rate  (see  figure  1  on  page  214).  Start  the 
program  at  location  0002,  and  have  fun  ac- 
companying your  computer! 


4K  CMOS  Memory  IC's 

Eliminate  heat  build-up  & 
Reduce  Power  Supply  Requirements 


4Kxl  6504  CMOS  memory  chips         $8.00  each 
The  6504  is  plug  compatihie  with  4044  NMOS 

1  Kx4  6514  CIVIOS  memory  chips         $8.00  each 


BOTH  CHIPS  FEATURE: 

Low  Power  Standby 
Low  Power  Operation 
Fast  Access  Time 


<2.S  mWMax 
<25  mW/MHz  Max 
<300  nsec  Max 


TTL  Compatiliie  Input  anct  Output 

Common  Data  Input/Output 

Industry  Standard  21  14  Type  Pinoul 

On  Chip  Address  Register 

Easy  Interfacing  With  Multiplexed  Bus  uP's  180851 

ALL  CHIPS  TESTED  ■  100%  FUNCTIONAL 

DIGITAL  GROUP 
Equipment  Users 

32K  Memory  Boards  without  memory  chips        S60.00 
These  boards  are  designed  to  use  either 
the  6504  or  4044  NMOS  memory  chips 

32K  memory  boards  with  16K  of  memory 
32K  memory  boards  with  32K  o(  memory 
ROTA-STROBES  for  monitoring  and  adjusting 
PHI-DECK  Tape  Speed    $4.50  each 

Send  Orders  To:    EMERGE  SYSTEMS 
P.O.  Box  2518 
Satellite  Beach,  Fl  32937 

ALL  ORDERS  MUST  BE  PREPAID  WITH  CHECK  OR  M.  O. 
Allow  time  for  personal  checks  to  clear 
Florida  residents  add  4%  sales  tax 


KIT 

ASSEM 

$284 

$359 

$508 

$608 

Circle  131  on  inquiry  card. 


August  1979  ©  BVIE  Publications  Inc        213 


Listing  J :  Metronome  program  for  the 
KIM-1  computer.  Nested  timing  loops 
create  audible  clicks  through  a  tape  re- 
corder hooked  up  to  the  computer. 
The  period  can  be  easily  altered  by  the 
user. 


Hexadecimal 

Address 

Opcode 

Label 

Instruction 

Comments 

0002 

AO 

80 

LDY 

#80 

Make  line  to  tape  recorder 

0004 

8C 

43  17 

STY 

1743 

an  output  line. 

0007 

AD 

42  17 

LDA 

1742 

Produce  a  click  by  inverting 

OOOA 

49 

80 

EOR 

#80 

the  line  that  goes  to  the 

OOOC 

8D 

42  17 

STA 

1742 

tape  recorder. 

000  F 

A5 

00 

LDA 

00 

\ 

0011 

85 

EO 

STA 

EO 

0013 

A5 

01 

L3 

LDA 

01 

0015 

85 

El 

STA 

El 

0017 

AO 

FF 

L2 

LDY 

#FF 

0019 

88 

LI 

DEY 

\      Delay 

001 A 

DO 

FD 

BNE 

LI 

001  C 

C6 

El 

DEC 

El 

001  E 

DO 

F7 

BNE 

L2 

0020 

C6 

EO 

DEC 

EO 

0022 

DO 

EF 

BNE 

L3 

/ 

0024 

4C 

07  00 

JMP 

0007 

Repeat 

Figure  7  .•  Calculating  the  metronome 's 
period.  First,  find  the  desired  number 
of  beats  per  minute  on  the  Y  axis, 
then  read  across  to  the  two  curves  and 
enter  the  corresponding  values  for  the 
program  on  the  X  axis  Into  hexadeci- 
mal memory  locations  0000  and  0001. 


i 

WlMl  TIT  ifflttttr  1  ^       ' PTTtt 

^              A^^zzzz    zz^^^^^^ 

"=; 

c                                                                                                  : 

J        _ 

7 

2...                                      _-L .            

2 

0 

_ 5 

e|eEEEEEEE5EEEEEEEEEEEEEEEEEEEEEEEEEEEE±EEE=E    EEEEEEEEEEEEEE 

_* J : z 

E3E--EEEE-E-sE---EEEE--E£E-E---E-EEEE---EEEE=--EE-E^-E--EEE 

L ^ ^£.i.Kl  IlI^L-  SiLlEL 

100-  ;:L_:::.  :::     _  s?!::::::.::::;::::::  .::::_::;:;;,:.:;;::: 

"    ^  T  Tt't  ~  T"*^ :—  ■^--*^-f-  -^-^  ^^E---r"^s-^''qi"-----^--'-  =  =  T~^TKi2 

^-  ^Piqzi|g^^-^p^^^.y  :.d!p^^ 

g_        Jt =  -  -!=          .I^I;  _:--          --      -  -       -|-*j-----=jj^----^>=----^- 

=  ==i(^S2^4Jl^^iEE  =  ^==p^|s^  =  =  ^(EEi^M=E=EM=E  =  =  sM 

Bii-T^ilzr_            .;            |     _  ;    :      :_     j-  t  _  [- j    pT-j— | -\^\-  I   1  j-JTrjkiJ^'  j ■  \  4-j-|        \~\''Y~\    ["{"  1    \~\~    '         V        "1 

nTl    H InMrMmT                mrnT    1     mm 

»^    --------5;-"^-^-       -7    -  =  _i"  =  "i"-----:r  =  _r"------"" 

IS"                 ~             *                   "                           I             "I- 

"V                                                 -                               -                      ' 

s 

2. '5,            ___         .     _     .     

EE=E-EE-E-E-E-=sEE-E- —EE    EE    --E-EEEE--EEEE=zE-EE-E-E-EEE-EE 

J 

!s---: 

10. 5^    _; ;-            -                                   

00             20             40             60             80             AO            CO             EO 

CONTENTS  OF  LOCAT  ION  0000  (In  hax) 


214        August  1979  ©  BYTE  Publications  Inc 


Memory  Test  Program 


Frank  J  Caperello 

1806  Kuser  Rd  Apt  9 

Trenton  NJ  08690 


Did  you  ever  have  a  program  that  ran 
successfully  for  months,  only  to  have  it 
suddenly  bomb?  Or  are  you  getting  in- 
consistent results  from  your  data?  It  could 
be  that  your  computer  is  losing  its  memory. 
Your  problem  may  be  due  to  memory  loca- 
tions becoming  degraded  because  of  a  bit 
failure.  With  microprocessors  having  4  K 
byte  or  greater  amounts  of  memory  it  is 
almost  impossible  to  check  each  and  every 
location  manually  for  a  bad  bit,  unless  you 
have  a  year  of  free  time  on  your  hands. 

This  wouldn't  be  a  problem  if  the  micro- 
processor had  parity  memory.  Parity  mem- 
ory is  implemented  as  an  extra  hardware  bit 
that  detects  a  bit  malfunction.  Unfortun- 
ately, parity  memory  also  has  a  high  cost 
factor,  so  it  is  usually  unavailable  on  micro- 
computer systems.  The  memory  test  pro- 
gram shown  here  will  not  replace  parity 
memory,  but  will  assist  you  and  save  time 
in  locating  bit  malfunctions. 


This  program  is  8080  compatible  and 
will  check  up  to  64  K  bytes  of  memory. 
Although  the  program  was  written  for  an 
IMSAI  8080  system  with  front  panel,  it 
can  easily  be  modified  to  work  on  other  8080 
based  microcomputer  systems.  The  program 
can  also  be  modified  to  be  placed  in  read 
only  memory  so  a  check  can  be  run  without 
having  to  manually  load  the  program. 

Basically,  this  program  clears  and  sets 
up  the  internal  registers,  inputs  the  amount 
of  memory  you  want  to  test,  loads  the  test 
memory  with  a  pattern  and  then  checks  it. 
If  all  goes  well,  it  increments  the  pattern 
and  repeats  the  entire  process.  The  test 
pattern  starts  out  at  octal  000  and  is  in- 
cremented to  octal  377;  when  it  is  incre- 
mented again,  a  pass  has  been  completed. 
A  pass  counter  is  incremented  and  displayed 
in  the  control  panel  output  port  light 
emitting  diodes  (LEDs).  On  start  up,  the 
Text  continued  on  paye  21  7 


68  MICRO  JOURNAL 


o 


* 
* 


THE 

ONLY 

6800/09 

USER-ORIENTE 
MAGAZINE 


Months  ahead  of  all  others  with 
6800/09  articles  &  new  products 

Crunchers  Corner  —  Bryant  (A  monthly  programming 
tutorial)  *  Flex®  to  BFD  —  Puckett  *  Tiny  Music  — 
Thompson  *  Semiconductor,  Part  1  —  KInzer  *  Soup  Up 
Your  TVT  —  Pass  *  Hints  &  Kinlts  —  fixes  (soft  &  hard)  * 
50  pages  plus       Each  Month! 


Crunchers  Corner  —  Bryant  *  A  Lool(  at 
the  SWTPC  CT-82  -  Ferguson  *  6800 
Relative  Branch  Calculation  (Hand)  — 
Berenbon  *  Relative  Calculator  (Machine) 
—  Heatherington  *  Maillist  (Disk)  —  Lilly  * 
Modems  —  Schuman  *  Semiconductor  - 
Part  2  —  Kinzer  *  Locate  —  Pigford  *  A20 
MA,  Printer-SWTPC  -  Perdue  *  AS-50 
Monitor  Board  —  Pentecost  *  TSC  Basic 
for  6800  —  Shirk  *  Plus  Much-fVluch  More! 


Crunchers  Corner  —  Bryant  *  A 
Case  for  the  Small  DOS  —  Maucli 

*  MF-68  Motor  Fix  —  Sorrels  * 
Transfer  (FLEX  1  to  2  or  5)  - 
Womack  ♦  6800  Delay  —  Beren- 
bon *  Make  Like  a  6809  —  Fein- 
tuch  *  Games  (Basic)  —  Harmon 

*  Boot  (Flex-BFD)  —  Puckett  * 
Freeze  Display  (SSB)  —Johnson 

*  Paper  Tape  Reader  —  Adams  * 
FLEX"-"'  Fixes  and  Much  More! 


MAGAZINE  COMPARISON 

(2  years) 

Monthly  Averages 

6800  Articles 

BYTE 


TOTAL 
PAGES 


DOBB'S 

7,8  6.4  2.7  2.2        19.1  ea.  mo. 

Average  cost  for  all  four  eacti  month:  $5.88 

(Based  on  advertised  1-year  subscription  price) 

'68'  cost  per  month;  B8tf 

($10.50  Charter  Subscription  Rate) 

That's  Right!  Much,  Much  More 

for 

1/6  the  Cost! 

CHARTER  SUBSCRIPTION  SPECIAL 

1-Year  $10.50      2  Years  $18,50      3  Years  $26,50 

OK.  PLEASE  ENTER  MY  SUBSCRIPTION 
Bill  My:  Master  Charge  n  —  VISA  p 

Card  =    . Exp.  Dale 

For  13  1-Year        Q  2  Years        Q  3  Years 
Enclosed:  S 


Streets 
City 


-Zip_     _ 


My  Computer  ls:_ 


68  MICRO  JOURNAL 

3018  Hamill  Road 
HIXSON,  TN    37343 

FOREIGN  ADD: 
$9.50  Per  Yr.  Surface 
$26.50  Per  Yr.  Air  Mail 
NOTE: 

Subscription  Rates  to  increase 
August  1 979  by  40%  —  Don't  miss 
anymore  than  you  have  already! 


•  MORE  6800  ARTICLES  THAN  ALL  OTHERS  COMBINED* 


Circle  329  on  inquiry  card. 


August  1979  E)  BYTE  Publications  Inc        215 


Listing  7;  Memory  test  program. 


000 

START 

XRA 

A 

257 

001 

MOV 

E,A 

137 

002 

MOV 

D,A 

127 

003 

CMA 

057 

004 

MOV 

C,A 

117 

005 

OUT 

323 

006 

377 

377 

007 

IN 

333 

010 

377 

377 

Oil 

MOV 

B,A 

107 

012 

INX 

BC 

003 

013 

REDO 

MOV 

A,E 

173 

014 

LXI 

HL 

041 

015 

XXA 

(FIRST) 

133 

016 

XXB 

000 

017 

LOAD  1 

MOV 

M,A 

167 

020 

INX 

H,L 

043 

021 

MOV 

A,C 

171 

022 

CMP 

L 

275 

023 

JC 

Z 

312 

024 

LOAD  2 

032 

025 

000 

026 

LOAD  3 

MOV 

A,E 

173 

027 

JMP 

303 

030 

LOAD  1 

017 

031 

000 

032 

LOAD  2 

MOV 

A,B 

170 

033 

CMP 

H 

274 

034 

JC 

NZ 

302 

035 

LOAD  * 

026 

036 

000 

037 

MOV 

A,E 

173 

040 

LXI 

HL 

041 

041 

XXC 

(FIRST) 

133 

042 

XXD 

000 

043 

CHECK  1 

CMP 

M 

276 

044 

JC 

NZ 

302 

045 

ERR 

107 

046 

000 

047 

INX 

HL 

043 

050 

MOV 

A,C 

171 

051 

CMP 

L 

275 

052 

JC 

Z 

312 

053 

CHECK 

2 

061 

054 

000 

055 

CHECK  3 

MOV 

A,E 

173 

056 

JMP 

303 

057 

CHECK  1 

043 

060 

000 

061 

CHECK2 

MOV 

A,B 

170 

062 

CMP 

H 

274 

063 

JC 

NZ 

302 

064 

CHECK  3 

055 

065 

000 

066 

MOV 

A,E 

173 

067 

INR 

A 

074 

070 

MOV 

E,A 

137 

071 

CPI 

376 

072 

000 

000 

073 

JC 

NZ 

302 

074 

REDO 

013 

075 

000 

076 

MOV 

A,D 

172 

077 

INR 

A 

074 

100 

MOV 

D,A 

127 

101 

CMA 

057 

102 

OUT 

323 

103 

377 

377 

104 

JMP 

303 

105 

REDO 

013 

106 

000 

107 

ERR 

SHLD 

042 

110 

ERR  3 

131 

111 

000 

112 

STA 

062 

113 

ERR  2 

130 

114 

000 

115 

MOV 

A,M 

176 

116 

STA 

062 

117 

ERR  1 

127 

Os  to  register  A. 

Os  to  pattern  register. 

Os  to  pass  complete  register, 

377  to  output  to  reflect  0  in  light  emiting  diode  (LED) 

377  to  low  order  half  of  maximum  address. 

Output  377  to  reflect  0. 

In  output  port  LEDs. 

Input  from  the  switches  the  high  half  of  the  maximum 

address. 

Move  it  to  the  high  half  of  maximum  add  register. 

Increment  the  register. 

Move  the  test  pattern  to  register  A. 

Load  the  first  memory  location  to  be  tested  into  the 

current  address  register. 

Go  put  the  test  data  in. 

Increment  the  address. 

Get  low  order  half  of  maximum  address. 

Compare  it  to  low  order  half  of  current  address. 

It  compared  now  go  check  the  high  order  half  of 

maximum  address. 


Here  there  is  still  more  to  do. 

Go  get  test  pattern  and  jump  back  and  deposit  it  again. 


Get  the  high  order  half  of  maximum  address. 
Compare  it  to  low  order  half  of  current  address. 
Jump  if  it  does  not  compare. 
This  means  that  there  is  still  more  to  do. 

Here  we  start  to  check  so  you  get  the  test  pattern. 
Reload  the  current  address  register  with  the  first 
memory  location  to  be  tested. 

Check  the  memory  location. 

If  they  do  not  compare  jump  to  the  error  routine. 


Here  if  they  do  compare,  increment  the  current  address 

to  the  next  location. 

Now  get  low  order  half  of  maximum  address. 

Compare  it  to  low  order  half  of  current  address. 

If  they  are  equal  go  jump  to  check  the  high  order 

half. 

Here  if  still  more  to  check,  go  get  the  test  data  and  jump 
back  to  recheck  it  again. 


Get  the  high  order  half  of  maximum  address. 
Compare  it  to  low  order  of  current  address. 
Jump  if  it  does  not  compare. 
This  means  that  there  is  still  more  to  do. 

Get  the  test  data. 

Increment  it  for  the  next  pattern. 

Save  the  test  data. 

See  if  the  test  data  is  equal  to  Os. 

Jump  if  it  is  not  -  this  means  that  we  still  have  patterns 
to  do  before  we  can  complete  this  pass. 

Pass  complete  so  get  the  pass  counter. 

Increment  register. 

Put  it  back  to  save  it. 

Complement  it  so  it  looks  correct  in  the  control  panel 

LEDs  and  output  it  to  the  lO  port. 

Go  back  and  redo  the  test. 


Here  if  we  have  an  error  store  the  current  address  where 
the  fault  occurred. 

Store  the  correct  data  as  it  should  have  been  read  from 
memory. 

Go  retrieve  the  incorrect  data. 

Store  it  so  we  can  see  where  the  error  was. 


Listing  1  continued  on  next  page 


216        August  1979  &  BYTE  Publications  Inc 


Circle  78  on  inquiry  card. 


PET    PRINTER    ADAPTER 


GET  HARD  COPY  FROM  YOUR 
COMMODORE  PET  USING  A 
STANDARD  RS-232  PRINTER 


1200B 


1200C 


The  CmC  ADA  1200  drives  an 
RS-232  printer  from  tine  PET 
IEEE-488  bus.  Now,  the  PET 
owner  can  obtain  hard  copy 
'listings  and  can  type  letters, 
manuscripts,  mailing  labels, 
tables  of  data,  pictures,  in- 
voices, graphs,  checks,  needle- 
point patterns,  etc.,  using  a 
standard  RS-232  printer  or 
terminal. 


$98.50       ADA1200B 

Assembled  and  tested 

$169.00     ADA1200C 

With  case,  power  supply 
and  RS-232  connector 


Order  direct  or  contact  your  local   computer  store. 
Add  $3.00  for  postage  and  handling  per  order. 

O  CONNECTICUT  microCOMPUTER 

[p  1=3  150  POCONO  RD.  BROOKFIELD,  CT  06804 

Lo  (2031  775  9659  TLX:  7104560052 


120 

000 

121 

MOV 

A,D 

172 

Now  get  the  number  of  complet 

122 

STA 

062 

away  for  future  use. 

123 

ERRO 

126 

124 

000 

125 

HLT 

166 

Stop. 

126 

ERR  0 

000 

000 

Pass  number. 

127 

ERR  1 

000 

000 

Bad  data. 

130 

ERR  2 

000 

000 

Good  data. 

131 

ERR  3 

000 

000 

Low  order  half  of  failed  address 

132 

000 

000 

High  order  half  of  failed  address 

133 

FIRST 

000 

000 

First  tested  location. 

Text  continued  from  page  215: 
program  receives  the  number  of  the  256 
locations  of  memory  to  be  tested  via  the 
control  panel  input  port  sv/itches.  The  test 
will  run  until  the  stop  button  is  depressed 
or  until  an  error  is  detected. 

Let's  look  at  w/hat  happens  when  an  error 
is  detected;  the  machine  comes  to  a  halt  - 
the  error  0  location  contains  the  number  of 
successfully  completed  passes. 

In  the  error  1  location  is  the  incorrect 
data  as  retrieved  from  the  faulty  memory. 
In  the  error  2  location  is  the  correct  data  as 
it  should  have  been  read  from  memory. 
In  the  error  3  location  is  the  low  order  half 
of  the  offending  address,  while  in  the  error 
3-1-1  location  is  stored  the  high  order  half  of 
the  offending  address.  By  comparing  the 
data  in  error  1  and  error  2,  we  can  determine 
which  bit  was  picked  up  or  dropped  -  but 
what  if  they're  the  same? 

You  then  have  what  is  known  as  a  "soft 
error,"  or  an  error  that  is  incorrect  on  the 
first  read  out,  but  correct  the  second  time 
around.  A  soft  error  can  be  caused  by  a 
timing  problem,  or  a  refresh  problem  when 
using  dynamic  memory.  The  program  starts 
checking  data  from  the  lowest  address  to  the 
highest.  When  an  error  is  detected,  the  data 
from  error  1,  2  and  3  should  be  recorded. 

Since  there  is  more  memory  to  check, 
add  1  to  the  error  3  data  and  deposit  this  in 
locations  xxA  and  xxC.  The  error  3+1  loca- 
tion should  be  entered  into  locations  xxB 
and  xxD.  Record  the  next  error  when  it  oc- 
curs, continuing  the  same  routine  until  no 


new  errors  are  detected,  or  until  a  pattern  of 
errors  is  evident." 


NORTH  STAR  SOFTWARE 


TIMESHARING 

for  the  Horizon — 

The    only    true    interrupt  driven,    bank 

switching  timesharing  soflu'are  availdble 

(or  the  Horizon. 

A   machine   language   program 
on5',"di  =  k $49,95 

DOSCHG4  (8"  disk  drive  interface  patch  to 

Release  4  North  Star  DOS  and  BASIC)    $49.95 

DOSCHG5  (8"  disk  drive  interface  patch  lo 

Release  5  North  Star  DOS  and  BASIC)   $49.95 

CSUBdiskanddocumentationpackage   $49.95 

The  followina  programs,  written  with  CSUB,  are  presently 
available: 

General  Ledger  (for  accountants) $49.95 

General  Ledger  (for  business  use) $49.95 

Accounts  Receivable  (for  accountants)   $49.95 

Accounts  Receivable  (for  business  use)   $49.95 

Accounts  Payable $49.95 

Payroll   $49.95 

Inventory $49.95 

Speci/v  Release  1  (single  density)  or  Release  5  (double  density) 

North  Star  DOS  and  BASIC 
All  programs  are  shipped  on  5  l/4~  diskette  and  include  documentation. 

This  Summer: 
Hard  Disk  Interface  For  The  Horizon 

Micro  Mike's,  Incorporated 

905  South  Buchanan  *  Amarillo,  Texas  79101  *  USA 
(806)  372-3633 


Circle  204  on  Inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        217 


6cofc  Reviews 


Practical  Microcomputer  Program- 
ming: The  Z-80 

byWJ  Welter 

Northern  Technology  Books 

Evanston  IL 

481  pages 

$29.95 


Practical  Microcomputer  Program- 
ming: The  Z-80  is  the  third  volume  in  a 
series  which  also  includes  works  on  the 
8080  and  6800  microprocessors.  My  re- 
view of  the  8080  volume  was  published 
in  BYTE,  January  1978. 

The  most  obvious  differences  be- 
tween the  Z-80  and  the  8080  volumes  in 
this  series  are  the  length  and  the  price. 
The  Z-80  version  costs  $8  more  than  its 
predecessor  and  it  is  almost  60  percent 
longer.  There  are  more  than  100  pages  of 
additional  text,  and  much  more  software 
is  included.  The  Z-80  volume  treats 
several  new  topics,  among  which  are 
floating  point  arithmetic  and  graphical 
output. 

This  book  is  intended  for  two  au- 
diences: the  first  is  the  beginning 
assembly  level  programmer  (as  all  of  the 
textbook  basics  are  included  and  iden- 


REBUILT  Like  New 

TTY-33  ASR 

3320/5JEALSO3320/6JE 

M|2  Design  2400  Printers 

NEWKSRandRO 
Up  to  1200  Baud 

•  Immediate  Delivery 

•  90  Day  Warranty  (  tty-33  only  > 

•  Quantity  Discounts 

•  Terms  Available 

CALL  BUD  SCOTT 

214/358-3681 

Data  Communications  International,  Inc. 
2636  Walnut  Lane,  Suite  350 
Dallas,  Texas  75229 


tified  so  that  the  more  advanced  reader 
can  skip  them),  and  the  second  is  the 
programmer  who  is  familiar  with  the 
8080  and  wants  to  become  skilled  in  the 
use  of  the  Z-80.  With  this  in  mind,  the 
mnemonics  used  are  not  those  used  by 
Zilog,  but  an  8080  compatible  set.  The 
new  Z-80  instructions  use  forms  based 
on  the  8080  mnemonics.  Unfortunately, 
the  two  sets  of  Z-80  mnemonics  are  not 
compatible. 

The  topics  which  the  book  treats  are 
fairly  standard:  moving  data,  arithmetic 
(single  and  multiple  precision,  fixed  and 
floating  point,  binary,  and  decimal), 
logical  operations,  use  of  the  stack 
pointer,  tables  and  arrays,  I/O  (input/- 
output)  programming,  and  the  use  of  in- 
terrupts. I/O  programming  is  divided  in- 
to sections  on  polled,  interrupt-driven, 
and  graphical  output.  Explanations  are 
clear,  and  there  are  many  good  ex- 
amples. 

The  appendices  are  a  nice  feature. 
These  contain  documentation  and 
listings  for  a  debugging  monitor  and  a 
conversational  assembler.  Both  of  these 
are  written  in  the  8080  subset  of  the  Z-80 
instructions,  so  that  an  8080  program- 
mer can  use  them  (the  assembler  flags 
non-8080  instructions).  Typing  in  the 
code  (either  object  or  source)  for  pro- 
grams of  this  size  is  very  tedious,  and  for 
this  reason  paper  tapes  of  the  object 
code  for  both  the  monitor  and  the 
assembler  are  free  by  returning  the 
coupon  at  the  back  of  the  book  to  the 
publisher.  The  assembler  can  take  its 
source  code  either  from  memory  or 
from  a  tape  or  disk.  A  simple  line  editor 
is  included.  You  do  not  have  to  load  the 
editor,  load  the  source  code,  punch  the 
source  code,  load  the  assembler  and 
load  the  source  code  again,  as  is 
necessary  with  separate  editors  and 
assemblers.  It  looks  very  convenient. 

In  conclusion.  Practical  Microcom- 
puter Programming:  The  Z-80  has  all  of 
the  advantages  of  its  8080  predecessor, 
while  avoiding  the  major  faults.  The 
book  is  clear  and  complete  (including 
the  index  of  assembler  mnemonics 
which  was  missing  from  the  8080  ver- 
sion), and  the  appendices  are  very  good. 
I  have  been  programming  the  Z-80  for  a 
year  and  a  half,  and  I  wish  that  I  had 
picked  up  the  knowledge  this  book  of- 
fers 18  months  ago!  ■ 

John  A  Lehman 
716  Hutchins  #2 
Ann  Arbor  Ml  48103 


218        August  1979  ©  BYTE  Publicalions  Inc 


Circle  87  on  inquiry  card. 


SURPLUS  ELECTRONICS 


ASCII 


ASCII 


IBMSELECTRIC 

BASED  I/O  TERMINAL 

WITH  ASCII  CONVERSION 

INSTALLED  $645.00 

•  Tape  Drives     •  Cable 

•  Cassette  Drives     •  Wire 

•  Power  Supplies  12V15A,  12V25A, 
SV35A  Others,     •  Displays 

•  Cabinets     •  XFMRS     •   Heat 
Sir^ks     •  Printers     •  Components 
Many  other  items 

Write  for  free  catalog 
WORLDWIDE  ELECT.  INC. 
130  NORTHEASTERN  BLVD. 
NASHUA,  N.H.  03060 
Phone  orders  accepted  using  VISA 
or  MC.  Toll  Free  1-800-2 58- 1036 
In  N.H.  603.889-7661 


f(^    TRS-80    J)\ 

SPECIAL  PROMOTION  SALE 

SAVE  10%,  15%  or  more  on  ALL 
Computers,  Peripherals,  Software, 
and  ALL  other  fine  Radio  Shack® 
products. 

NO  TAXES  on  out-of-state  ship- 
ments. 

FREE  Surface  delivery  in  U.S. 

WARRANTIES  will  be  honored 
by  your  local  Radio  Shack®  store. 
Offered  exclusively  by 

Radio  Shack® 

Authorized  Sales  Center 

1117  Conway 

Mission,  Texas  78572 

(512)  585-2765 


\ 


J 


SUPPLIES 


•  FLOPPY  DISKS,  MINI  OR 
STANDARD  MEMOREX  OR  3M 

•  3M  DATA  CARTRIDGES 
DC30I)A,  DCIOOA 

•  3M  DIGITAL  CASSETTES 

•  3M  OR  MEMOBEX  AUDIO 
CASSETTES,  C  SO 

■  3M  DISK  CARTRIDGES 
WE  OFFER: 
■COMPETITIVE  PRICING 
■IMMEDIATE  DELIVERIES 

(Any  Quantity) 
■  UNCONDITiONAL  GUARANTEE 

BETA  BUSINESS  SYSTEMS 

8369  VICKERS  ST,.  ffC 
am^  SAN  DIEGO,  CA  3211 
IJ^jiid         (714)565-1505 


'""m 


Circle  391  on  Inquiry  card. 


Circle  314  on  inquiry  card. 


Circle  34  on  inquiry  card. 


FLOPPY  DISK 
REPAIR 

;<j'»r_j;yiirc;!:,iiiii;>~i»;*,,;* #;*j„ 

•  PerSci  and  Shugart 

•  Quick  turnaround 

•  Factory  trained  on 
PerSci  \ 

7 
COIVIPUTER  SERVICE  CENTER 

7501  Sunset  Blvd 

Hollywood  CA  90046 

213-851  2226 


Circle  68  on  inquiry  card. 


MAXIMUM  VALUE 
FOR  YOUR  DOLLAR 

NORTH  STAR  COMPUTER  PRODUCTS 

H0RIZ0N1  16K  KIT $1275.00 

16K  RAM  BOARD  KIT $  250.00 

32K  RAM  BOARD  KIT $  475.00 

VERBATIM  DISCS  FOR  NORTH  STAR 

BOX  OF  10 $29.  POST  PAID 

COMPLETE  SYSTEMS  AVAILABLE 

CUSTOM  SOFTWARE  FOR  NORTH  STAR  SYSTEMS 

CASIO  CALCULATORS 
AT  DISCOUNT  PRICES 

MANY  OTHER  SUPER  VALUES 
WRITE  OR  CALL: 

A.E.I. 

3851  HACKETT  AVE. 

LONG  BEACH,  CALIF.  90808 

(213)  421-4615       (213)  429-0535 


TRS-80  16K  MEMORY  EXPANSION  KIT 

INCLUDES  8  TESTED  &  GUARANTEED  M5R  4116  3  16K  RAMS, 
PROGRAMMING  PLUGS  &  EASY-TO-FOLLOW  INSTRUCTIONS. 

$72°SPERKIT 


6800    64K  BYTE  RAM  SET  AND  CONTROLLER 
CHIP  SET      *W'f  e^Ksyrcs  of  memory  fos  your 

6800  THE  CHIP  SETS  IKWDE 
..„   .-nn  32     M5K  4116-3  16K  RAMS, 

$29555  1     MC3480L  MEMORY  CONTROLLER, 

PFO  rnuPiPTF  <;n    1     MC3242AP  MEMORY  ADDRESS 
PtR  LOMPLtlL  btl.         MULTIPLEXER/COUNTER, 
DATA  8  APPLICATION  SHEETS. 
PARTS  TESTED  &  GUARANTEED, 


16K  DYNAMIC  RAMS 

M5K  4116-3   200NSEC 

ACCESS  TIME/375NSEC 

CYCLE  TIME.TESTED  t. 

BURNED-IN 

$850  EACH/MIN.QTY  8 

4K  STATIC  RAMS 

EQUIV,TOTMS40144-30 
300NSEC  ACCESS  TIME/ 
CYCLE  TIME  FOR  4MHZ 
2-80  OPERATION, 
m  EACH/MIN.QTY,  8 

Tested  s  guaranteed 

OUMTiry  DISCOUNTS  miL/IBLE 
ALL  ORDERS   POSTPAID,  U,S,FUNDS   CHECK  OR  MONEY 
ORDER,   VISA,8A,MASTERCHARGE-SEND  ACCOUNT  NO. 
EXPIRATION  DATE,  INTERBANK  ^0,,&  SIGNED  ORDER, 
PHONE  ORDERS:   714/633-4460 

MEASUREMENT  SYSTEMS  &  CONTROLS, inc, 

MEMORY  DEVICES  DIVISION,    DtPT,  B3 

867  NORTH  MAIN  ST,   ORANGE,  CA  92668 


Circle  216  on  inquiry  card. 


save  more  than  20%! 

NORTH  STAR INTERTUBE 

THINKER  TOYS HUH 

Iha  smartest  computars  at  the  smarlest  price 
DOUBLE  DENSITY 

H0RIZ0N-M6Kkil,  list$1599  .,,$1279 

Assembled  &  tested,        list$1899  ,,,$1519 
HORIZON-2-32Kkit,  list  $2249   .,,$1799 

Assembled  &  tested,        list  $2549  .,,$2039 
HORIZON-2-32K   QUAD  DENSITY 

Assembled  &  tested,        list  $2999  ,  ,  ,  $2399 

PASCAL  for  NORTH  STAR  on  Disk $49 

Powerful  NORTH  STAR  BASIC FBEE 

Measurement  Systems  asm  memory  64K ,  $640 

TtiinkerToys  Discus/2  D  asm  $1149 $949 

TRS80IOS-100HUH  kit        list  $295 $260 

Assembled  &  tested,        list  $375 $350 

INTERTUBE  IITarmlnai.      Il8t$995 $780 

MARYELLEN  Word  Processing,  ,  , 

$34  -f  $1.50  sfiipping 

VERBATIM  Disks.  .  , 

10  for  $29.50  -I-  $1.50  sfiipping 
Wfiicti  Computers  are  best?  BROCHURE.  .    FREE 

AMERICAN  SQUARE 
COMPUTERS 

KIVETT  DR,  JAMESTOWN  NC  27282 
(919)883-1105 


Memorex 
Floppy  Discs 

Lowest  prices.  WE  WILL  NOT 
BE    UNDERSOLD!!    Buy    any 

quantify  1-1000.  Visa,  Mastercharge 
accepted.  Call  free  (800)235-4137 
for  prices  and  information.  All 
orders  sent  postage  paid. 


PACIFIC 
EXCHANGES 

100  Foothill  Blvd, 
San  Luis  Obispo.  CA 
93401,  (InCal,  call 
(805)  543-1037.) 


Circle  294  on  inquiry  card. 


RECYCLE(D) 

BUY  ^1^  SELL  <    SWAP 
Hardware     &     Software 

NEW     PRODUCT    ANNODNCEMENTS 

Mailed  ist  Class  every  3  Weeks 
lyr.  (18  Issues)  %?  $3.75 


ON   LINE  -■#■ 


Djut  tcd  It.  iJiiUlislin    ■     Csi-ililislitB    li>r3 

2469B  Santa  Cruz  Hwy..  Los  Gatos.  CA9S030 


Circle  21  on  Inquiry  card. 


Circle  5  on  Inquiry  card. 


Circle  288  on  inquiry  card. 


An  Overview 
of  Long  Division 


Geoffrey  Gass 
5240  SW  Dosch  Rd 
Portland  OR  97201 


On  the  very  simplest  level,  a  divi- 
sion problem  starts  with  two  num- 
bers, a  dividend,  which  we  want  to 
divide  by  a  divisor,  to  obtain  a  third 
number,  a  quotient.  In  terms  of  grade 
school  long  division: 


Quotient 
Divisor  )Dividend 


-I-  Remainder 


The  quotient  (integer  portion)  is 
simply  the  number  of  times  the 
divisor  can  be  subtracted  from  the 
dividend  and  still  leave  a  positive  re- 
mainder. 

The  simplest  computer  program  for 
this  calculation  goes  as  follows: 

•  Put  the  dividend  into  register  N. 

•  Put  the  divisor  into  register  D. 

•  Clear    a    quotient    register    Q. 

•  Assign  a  remainder  register  R. 

•  Subtract  D  from  N  and  put  the 
result  in  R. 

•  Test  R. 

•  If  R  is  positive,  increment  Q, 
transfer  R  into  N,  and  go  back 
to  the  subtract  step. 

•  If  R  is  negative,  exit.  Q  is  now 
the  (integer)  quotient  and  N 
contains  the  remainder. 

There  is  nothing  basically  wrong  with 
this  procedure,  but  it's  not  very 
useful.  If  N  is  1,000,000  and  D  is  2,  it 
will  take  500,000  operations  of  the 


program  to  get  Q.  If  D  is  797,236,  the 
program  will  quickly  tell  us  the 
answer  is  1,  with  a  remainder. 

Let  us  check  off  the  chief  deficien- 
cies. First,  if  the  two  numbers  are 
very  different,  the  program  will  give 
us  an  accurate  answer,  but  will  take  a 
long  time  doing  it.  Second,  if  the  two 
numbers  are  very  close  in  value,  the 
program  will  be  very  quick,  but  not 
very  precise.  Third,  if  D  is  larger  than 
N,  zero  is  the  only  answer.  Fourth,  if 
D  happens  to  be  zero,  the  program 
will  loop  forever  trying  to  get  Q  up  to 
infinity. 

What  we'd  prefer  is  a  quicker  pro- 
gram that  gives  us  an  answer  correct 
to  at  least  as  many  places  as  the 
significant  digits  of  the  numbers  we 
put  in,  regardless  of  the  magnitude  of 


the  numbers.  But  won't  that  take  a 
more  complicated  program  and  won't 
a  more  complicated  program  take 
longer  to  execute?  A  program 
2,000,000  instructions  long  could  be 
quicker  to  execute  than  one  which 
loops  through  six  instructions 
500,000  times.  And  it  certainly  won't 
take  two  million  instructions  to  make 
a  quite  thorough,  precise,  accurate 
and  quick  division  program. 

To  get  speed  and  precision,  start 
out  just  as  a  previous  generation  was 
taught  in  grade  school,  by  juggling 
the  decimal  points  around  (or  binary 
points  if  we  are  working  in  binary). 
To  put  it  another  way,  multiply  the 
divisor  and  dividend  some  number  of 
times  by  the  base  of  the  number 
system  (10  or  2,  for  example)  until  the 


REGISTER 


N    (DIVIDEND) 


D    (DIVISOR) 


R    (REMAINDER) 


Q    (QUOTIENT) 


INTEGER  .  FRACTION 


Figure  1:  Four  registers  for  division,  each  with  two  words  for  integers  and  two  for  frac- 
tions, except  register  Q  which  is  double  size.  The  registers  are  usually  strung  out  serially 
in  adjacent  memory  locations,  but  it  is  convenient  to  think  of  them  in  block  form  as 
shown. 


220        August  1979  ©  BYTE  Publications  Inc 


N 
D 

R 
Q 


0000       0000 


0000 

nnOO 

0000 

0000 

0000 

OOOd 

0000 

0000 

0000 

0000   . 

0000 

0000 

0000 

0000   . 

0000 

0000 

0000       0000 


Table  1:  Starting  arrangement  of  the  registers  for  division.  The  dividend  and  divisor 
have  been  loaded;  all  other  registers  are  cleared. 


dividend  is  only  slightly  larger  than 
the  divisor.  Note  how  many  places  it 
is  necessary  to  shift  the  numbers  so 
they  are  nearly  equal.  (In  old-fash- 
ioned long  division,  the  divisor  is 
shifted  until  it  is  an  integer,  and  the 
dividend  is  shifted  the  same  number 
of  times.  The  rest  of  the  necessary 
shifting  is  done  by  relocation  of  the 
quotient  with  respect  to  a  fixed  loca- 
tion for  the  decimal  point.) 

To  start,  set  up  an  array  of  registers 
large  enough  to  hold  the  largest 
numbers  we  want  to  deal  with.  The 
quotient  register  is  twice  as  large  as 
the  others,  since  dividing  a  very  small 
fraction  by  a  very  large  number  pro- 
duces a  yet  smaller  fraction,  and 
dividing  a  very  large  number  by  a 
small  fraction  gives  an  even  larger 
quotient.  Then  arbitrarily  define 
some  point  in  each  register  as  the 
decimal  or  binary  point.  A  conven- 
ient place  is  between  two  memory 
words,  as  shown  in  figure  1.  Al- 
though a  more  common  technique  is 
to  use  only  three  registers  (no  R 
register),  using  four  is  a  little  easier, 
and  you'll  never  notice  the  slightly  in- 
creased time  required  for  putting  R 
into  N  after  every  successful  subtrac- 
tion. However,  extra  time  is  only 
needed  for  BCD  (binary  coded  deci- 
mal) division.  In  binary  arithmetic, 
the  extra  time  for  an  addition  after 
every  unsuccessful  subtraction 
approximately  balances  the  time 
wasted  in  transfers. 

The  first  operation  is  to  load  in  the 
numbers,  being  careful  to  locate  them 
in  the  proper  position  with  respect  to 
the  decimal  point.  If  the  dividend  N  is 
nnOO,  it  will  go  into  the  word  just  to 
the  left  of  the  point  in  N.  If  the  divisor 
is  OOOd,  it  will  go  in  the  correspond- 
ing word  of  register  D.  All  other  loca- 
tions must  be  cleared  to  0000,  if  not 
already  done.  Table  1  shows  our  star- 
ting arrangement.  Because  the  pro- 
gram is  general  purpose,  and  must  be 
able  to  operate  with  any  kind  of 
numbers  that  can  be  fitted  into  its 
registers,  it  can't  "know"  how  big  N 


and  D  are.  Its  first  job  is  to  find  out 
their  magnitudes  so  it  can  set  them  to 
be  nearly  equal. 

The  easiest  way  to  do  this  is  to  start 
by  shifting  register  D  to  the  left  and 
insert  zeros  at  the  least  significant 
digit  position  of  the  fraction  part  of 
the  register  until  something  pops  up 
at  the  most  significant  digit  position 
at  the  left  of  the  integer  part  of  the 
register.  In  this  operation  we  must  set 
a  limit  to  the  number  of  shifts  allow- 
ed, so  when  we  have  done  16  shifts 
and  still  get  nothing  at  the  top  of  the 
register,  we  can  stop.  Division  by 
zero  is  not  allowed,  of  course,  and  the 
computer  has  better  things  to  do  than 
spend  hours  shifting  empty  registers. 
Then  do  the  same  thing  with  register 


N,  shifting  it  left  until  its  most  signifi- 
cant digit  shows  at  the  top  of  the 
register.  We  can  use  the  same  counter 
used  for  D  to  keep  track  of  how  many 
shifts  it  takes,  starting  with  the  count 
left  over  from  counting  D's  shifts  and 
counting  in  the  opposite  direction. 
Our  final  count  will  reflect  the  dif- 
ference in  magnitude  between  the  two 
numbers.  That  number  is  saved  for 
later.  Again,  with  N,  it  is  necessary  to 
set  a  limit  to  the  count  or  we'll  be 
shifting  forever  if  N  happens  to  be 
zero.  The  limit  needn't  be  exact  (it 
can't  be,  because  we  don't  know  what 
number  we  started  with  in  the  coun- 
ter), but  that's  not  critical.  All  that's 
needed  is  something  that  will  get  us 
out  if  the  count  starts  looking  like 
infinity.  A  limit  of  —20  or  +20, 
depending  on  which  way  the  count- 
ing starts,  is  adequate.  In  the  example 
of  table  1,  the  saved  number  is  3  (the 
difference  between  the  seven  shifts  it 
took  to  get  D  to  the  top  of  the  register 
and  the  four  shifts  required  for  N). 

Before  starting  subtraction,  coun- 
ting and  shifting,  a  certain  number  of 


MICROPROCESSOR 
SOFTWARE  ENGINEER 

A  leader  in  the  rapidly  growing  field  of  medical  diagnostic  instru- 
ments, Abbott  Laboratories  has  produced  major  systems  for  clinical 
chemistry,  hematology,  microbiology,  and  radioimmunoassay. 

Our  products  include  ABA/VP,  the  number  two  selling  chemistry 
analyzer. ..ADC-500,  the  top-performing  automated  white  cell  clas- 
sifier... MS-II,  the  only  fully-automated  microbiology  system. ..and 
Logic/Auto-LOGIC,  the  top  selling  gamma  counters  for  RIA. 

A  new  product  development  group  has  an  immediate  opening  for  a  Software  Engi- 
neer to  design  microprocessor  systems  for  clinical  instruments.  Responsibilities 
include  developing  systems  specifications,  defining  software,  writing  and  debugging 
programs. 

You  will  work  closely  with  chemists  and  mechanical,  optical  and  electrical  engi- 
neers on  a  dynamic  product  team  which  has  developed  innovative  instruments  for 
medical  diagnostics. 

Experience  must  include  at  least  2  years  of  real  time  control  applications  using 
Intel  or  Zilog  products.  Applicants  should  have  designed  and  generated  executive 
and  support  software  for  microprocessor  based  system.  A  BS  in  EE  or  Computer 
Science  or  equivalent  experience  is  required. 

Starting  salary  is  highly  competitive  and  commensurate  with  experience.  If  you 
are  interested  in  pursuing  a  career  in  this  area,  please  send  resume  with  salary 
history  in  confidence  to: 

E.  Marciano 
Corporate  Placement 


NORTH  CHICAGO,  ILL.  60064 

Abbott  is  an  Affirmative  Action  Employer 


August  1979  ©  BYTE  Publications  Inc        221 


operations  must  be  set.  Since  we 
started  with  possible  16-position 
numbers,  16  operations  should  give 
16  position  answers,  which  is  what 
we  were  looking  for.  We  will  be  mov- 
ing quotient  digits  into  the  Q  register 
at  a  point  15  places  to  the  right  of  the 
binary/decimal  point.  If  the  answer  is 
1,  16  shifts  will  put  that  first  and  only 
digit  of  the  answer  just  to  the  left  of 
the  binary/decimal  point  in  Q. 

Now,  with  a  starting  count  of  16, 
and  the  D  and  N  numbers  in  position, 
subtract  D  from  N  and  put  the  result 
in  R.  Is  R  negative?  (If  binary  coded 
decimal  notation  is  used  D  could  be 
larger  than  N,  and  R  could  therefore 
be  negative.  If  binary  notation  is 
used,  N  must  equal  D,  so  R  could  not 
in  the  specific  example  be  negative; 
but  we  test  for  it  anyway.)  If  R  is 
negative,  go  immediately  to  the  next 
operation.  If  R  is  positive,  transfer  R 
to  N  and  increment  Q.  If  working  in 
binary  arithmetic,  go  to  the  next 
operation  at  this  point,  since  another 
subtraction  cannot  be  done.  If  work- 
ing in  binary  coded  decimal,   how- 


ever, N  could  be  9  and  D  could  be  1, 
and  there  are  eight  operations  yet  to 
go.  So  for  binary  coded  decimal,  loop 
back  and  keep  on  subtracting  and 
swapping  R  back  into  N  until  R  is 
finally  negative,  then  stop.  Don't 
transfer  R  or  increment  Q,  just  get  on 
to  the  next  operation. 

At  this  point,  the  most  significant 
digit  of  the  quotient  is  in  the  least 
significant  digit  position  of  register 
Q.  Now  shift  D  one  position  to  the 
right  and  shift  Q  one  position  left, 
marking  the  end  of  one  operation  in 
our  operations  counter.  Keep 
repeating  the  above  process  until  all 
16  shifts  have  been  done.  At  this 
point,  the  first  Q  digit  is  one  position 
to  the  left  of  the  binary  or  decimal 
point  in  Q.  Now,  go  back  and  look  at 
the  magnitude  difference  count  ob- 
tained at  the  start  of  the  program.  If  it 
is  positive,  shift  Q  to  the  left  that 
many  times;  if  it  is  negative,  shift  Q 
CO  the  right  that  many  times.  (We 
could  have  checked  the  magnitude 
difference  count  when  the  operations 
counter  was  set:  if  the  magnitude  dif- 


Build  The  World!;  Most 
Powerful  8-Bit  Computer 

Featuring  The  Famous  Intel  8085! 

Explorer/SS^*^ 

starting  for  just  $129.95  you  can  now  build 
yourself  a  sophisticated,  state-of-the-art 
computer  that  can  be  expanded  to  a  level 
suitable  for  industrial,  business  and 
commercial  use.  You  learn  as  you  go ...  in 
small,  easy-to-understand,  inexpensive  levels! 


\l. 


^ 


Features  Intel  8085  cpu/100%  compatible  with 

8080A  software! 

Onboard  S-100  bus  (up  to  6  slots)! 

Onboard  RAM  and  ROM  expansion! 

Built-in  deluxe  2K  Monitor/Operating  ROM! 

Cassette/RS  232  or  20  maJ4V2  8-bit  parallel 

I/O  and  timer  all  on  beginner's  Level  "A"  system! 


As  featured  in 
POPULAR  ELECTRONICS 

EXPL0RER/8b  shown  willi  Video  Monilof  ami  KevtioafO/Vicleo  lerminal 

CHOICE  OF  HEX  KEYPAD  OR  TERMINAL  INPUT 

It  you  pL^n  to  cusloim^e  EXPLORiiR  lof  ilfitlicaled  use,  we  (ecoiiimend  llial  you  order 
liex  keyoiid  m[)ul  But  il  you  .ite  planning  lo  go  whole  hog  and  tilow  EXPLORER  up 
inlo  a  lull  size,  slale-ot-lhearl  system  with  8K  or  extended  tiasic  (commt]  soon)  up 
lo  6'iK  ot  memory  lloppy  disks  lelephone  interlace  Drmiers.  dnd  all  sons  ot  S-iOO 
plug-ins— you  H  he  beller  oil  wild  itie  Keyboard/Video  lermmat  input  Ine  Si49  9& 
EXPLORER  Keydoafd/Video  lermmai  includes  full  ASCII  decoding  wiin  l?8  ASCii 
upper/lowei  case  sel.  96  [irmlable  characters  onboard  regulators  and  selectable 
display  loimals-  32«16lor  tv  set  or  5J«I6  lor  video  moniloi  mot  included i 
EXPAND  EXPLORER.  LEVEL-BYLEVEL 

Level  "B".  al  S49  95,  adds  5-100  signals  plus  onboard  RAM/ROM  decoding 
Includes  all  pans  necessary  lo  generate  the  signals  lor  S-iOO  bus  accessories  Jusl 
add  Iwo  S-100  bus  connectors  and  you  have  a  comoiele  St  00  compatible  computer 
With  a  world  ol  add-ons  al  your  lingertips  Choose  Irom  Hundreds  ol  ptoducls  to 
EXPLORER'S^  gives  you  big  computer  features  immerti.iteiy.  without  turning  you  satisly  your  mdivirlual  needs  Level  "B  kit  also  includes  the  ;iddress  decoders  lor 
inlo  an  appliance  operator ,  doomed  lo  run  pre-developed  sollware  lor  Itle  Simply  onboard  RAM  and  ROM  expansion  which  are  addressable  anywhere  in  Ihe  6!)K  held 
connect  EXPLORER  10  a  terminal  video  monitor  or  tv  sel  and  8  voll  power  supply  and  Level  -'C"  expansion,  al  S39  95  e«pands  the  S  100  bus  to  allow  a  total  o!  six 
start  running  programs  Ihe  very  firsl  nighl'  Level  A  teaches  you  machine  $-100  cards  to  He  plugged  into  EXPLORERS  motherboard  and  rantameo  m 
language  and  compuler  lundamentals  ll  lels  you  tun  exercise  programs  including  EXPLORER  s  steel  cabinet  includes  all  hardware  mounlirg  brackels,  board  guides, 
programs  loexaminettiecpuiegislers  examine  memoty,  lili  memory,  move  memory  e,c  j,jsi  add  Ihe  number  ol  SlOO  bus  conneclors you  need 
and  make  up  games  You  can  load  and  play  back  these  programs  on  an  otdmaiy  lape  |,evel  "D"  expansion,  al  S69  95,  gives  you  4K  ol  onboard  static  RAM  utilizing 
casselie— and  display  your  ellons  on  any  ivscieen  video  monitor  or  pimier  iS8  95  ^luiCs  Vour  board  will  also  accept  lour  27i6  EPROM  s  which  can  be  purchased 
RF  modulator  retiuired  tor  iv  use  )  The  simpMied  architecture  ol  Ihe  Inlet  8085  separaiely  You  now  have  an  advanced  mainlrame  ihat  can  be  customized  with  Ihe 
makes  EXPLORER  lar  easier  lo  understand  than  computers  using  the  older,  more  peripherals  ol  your  choice  to  lit  any  (or  all)  specihc  requirements  Each  level  ol 
complex  bill  less  powetlul  8080A  Ihen  when  you  re  ready.  EXPLORER  can  be  EXPLORER  is  separately  requLited  lor  ihe  ullimate  in  stability  Factory  service  is 
expanded— Oy  you  — to  rival  the  power  ol  any  8-bil  computer  on  earth    Or  you  can    .ivmiablL'  Irom  Netrcintcs  Order  your  EXPLORER  today! 

'l __  —   ORDER  FROM  THIS  COUPON  TODAY!- — 1 

Netronics  R&D  Ltd.,  Dept  BY-S,  333  Litchfield  Road.  New  Milford,  CT  06676         , 

□  Level    A'    EXPLORER/85  kil  (specily  □  ler-      □   Deluxe    Sleei    Cabinet    tor     EXPLOBEH/85 

I  mmal  or  D  hex  keypad  input)   Sl?9  95  plus 

I  $3  p&h 

n  Power  Supply  kil,  5  amp,    ±8  woll,  S34  95 

I  plus  S?  p&h 

'  □  Intel  8085  User  s  Manual,  $7  50  ppO 

I  D  ASCII  Keyboard/Video  Terminal  kil.  $149,95 

I  plus  S3  p&h 

I  D  Hex  Keypad  kit  lor  hex  version,  S69  95  plus 
$2  p&h 


customize  It  toperlorma  dedicated  task,  i hanks  to  onboard 
prolDlyping,  RAM  and  ROM  expansion  capabiiihes 
LEVEL  "A"  SPECIFICATIONS 
EXPLORER  s  Level    A'   system  leaiures  an  advanced  Inlet 
8085  cpu.  which  is  50%  taster  Ihan  its  8080A  prede- 
cessor, yet  100%  compaliBie  wilh  8080A  software 
which   you'll  discovei.  exists  by  the  Ion      Big  compute' 
leaiures  include  an  8355  ROM  with  ?k  deluxe  monitor/ 
operating    system    which    has    two   programmable   8-bit 
bi-diieclronai  parallel  I/O  ports,  built-m  cassette  interlace 
with  tape  control  circuitry  lo  allow  labeling  cassette  liles. 
and   commands   which    include     "display   contents   ot 
memory,     'run  at  user  location  (go  toi,       insert  data.' 
"move  contenis  ol  memory,     "examine  registers  individ 


ualtyotall.'    Idl  command  (to  till  the  contents  ol  memory  !□  Level  "B    S-100/Onboard  RAM/ROM  Decoder 

with  any  variable)  automatic  baud  rate  selection  program-  ''i'  ('ess  S-100  conneclorsl,  5-19  95  plus  S2 

mable  characters  per  line  display  output  lormat,  and  more'  |        P&'' 

An  8155  RAM-l/0  chip  contains  256  bytes  ol  RAM.  two      Q   Level      C     S-lOO  5-Card  Expander  kit  (less 

programmable  8  bit  bi-diieclionai  and  one  programmable  I        conneclors).  $39  95  plus  $2  p&h 

6-bit  bi-directional  I/O  pons  plus  programmable  i-ibil      □  s-lOO  BusConneclors  (gold)  SaaSeacti 

binary  coumer/hmer    user  interrupt  and  reset  switches        q  ^evel     D     ■IK  Onboard  RAM  kit    S69  95  plus 

Onboard  expansion  provisions  exist  lor  up  lo  six  S-100  i        s?  n&h 

boards, 4KolRAMand8KotROM.  PROMorEPROM,  |__     ,     ., 


$39  95  plus  S3  p&h 

□  Deluxe  Sleei  Cabinet  lor  Key  board /Video  ler 
mmal.  $19  95  plus  S2  50  p&h 

D   RF  Modulator  kit  SB  95  ppd 

a  Total  Enclosed  (Conn  res  add  tax)  S       

□  VISA     □   Mastor  Charge     Exp  Date 
Account  #        

PHONE  ORDERS  CALL  (203)  354-9375 

Pnnl 

Name 

Address    


.  DEALER  INQUIRIES  INVITED  . 


ference  was  negative,  set  that  many 
fewer  operations  for  the  program.  We 
would  not  have  added  any  positive 
number,  however;  that  would  set  up 
a  divide  by  zero  for  the  17th  opera- 
tion.) Register  Q  now  has  the  correct 
quotient. 

We  neglected  the  small  problem  of 
loading  the  digits  into  the  registers  in 
their  proper  positions,  and  didn't  get 
into  fine  detail  on  how  a  subtract  or 
shift  operation  might  be  performed  in 
a  multiword  register;  however,  the 
general  outline  of  the  algorithm  can 
now  be  imagined,  and  that's  half  the 
battle.  And  there  are  some  details  of 
it  that  can  help  us  along  to  the  next 
step. 

When  the  numbers  were  shifted  up 
to  the  tops  of  their  registers  in  the 
earlier  example,  we  were  actually 
going  through  the  process  of  conver- 
ting fixed  point  to  floating  point 
numbers,  by  normalizing  the  digits, 
with  a  saved  exponent  indicating  how 
far  they'd  been  shifted.  In  that 
specific  example,  we  saved  only  the 
difference  in  exponents,  but  this  gave 
us  the  information  needed  to  create  a 
conventional  notation  number  from 
our  floating  point  answer  in  Q. 

Our  next  step  is  to  establish  a  full 
floating  point  format  in  order  to 
avoid  the  magnitude  limitations  for- 
ced on  us  by  fixed  point  data.  Because 
most  processors  are  equipped  with 
binary  coded  decimal  arithmetic  aids, 
there  is  no  need  to  bother  with  binary 
coded  decimal  to  binary  conversions 
(and  vice  versa)  when  handling  num- 
bers input  via  the  keyboard.  Also, 
battling  with  the  attendant  conver- 
sion problems  can  be  avoided  (ie: 
decimal  fractions  that  can  only  be 
approximated  by  binary  fractions 
and  rounding  operations  which  don't 
come  out  the  same  in  binary  coded 
decimal  and  binary). 

In  floating  point  format,  every 
number  is  stored  as  a  string  of  digits, 
with  the  most  significant  nonzero 
digit  at  the  top  of  the  register  and  the 
decimal  point  location  saved  in  a 
separate  register.  The  programmer 
can  arbitrarily  say  that  the  imaginary 
decimal  point  is  anywhere  in  the 
normalized  string  of  digits  as  long  as 
the  program  is  internally  consistent. 
For  ease  of  output  in  standard  scien- 
tific notation,  however,  it's  best  to 
say  that  the  0  position  of  the  decimal 
point   is   immediately   following   the 


222        August  1979  ©  BYTE  Publications  Inc 


Circle  280  on  inquiry  card. 


most  significant  digit  in  the  register. 
That  is,  the  number  stored  is  1  or 
greater  and  less  than  10,  and  is  to  be 
multiplied  by  10  to  the  power  indi- 
cated to  obtain  conventional  nota- 
tion. 

The  number  6045.35  is  stored  as: 

EXP  NUMBER 
03       604535 

with  the  number  in  EXP  indicating 
how  many  places  further  to  the  right 
of  the  first  digit  the  decimal  place 
must  be  moved  for  conventional 
notation.  If  EXP  is  00,  the  number  is 
6.04535;  if  EXP  is  FD  (—3  in  hexa- 
decimal form),  the  number  is 
.00604535.  In  addition  to  the  number 
and  the  base  exponent,  we  also  need 
something  to  indicate  the  sign  of  the 
number. 

In  binary  operations,  the  most 
significant  bit  of  a  number  can  be 
considered  the  sign  bit,  providing  a 
single  byte  with  the  range  of  values 
-1-127  to  -128  decimal.  Arithmetic 
performed  under  this  convention 
gives  consistent  answers  (except 
under  overflow  conditions  for  which 
most  processors  have  detection  cir- 
cuits and  warning  flags).  For  binary 
coded  decimal,  the  topmost  digit 
position  is  the  sign  digit:  0  for  a 
positive  number,  and  9  for  a  negative 
number.  Negative  numbers  are 
generally  handled  in  tens  complement 
form,  obtained  by  subtracting  the  ab- 
solute value  from  999999999....  9 
and  then  adding  1  to  the  least  signifi- 
cant digit  (this  is  the  way  many  early 
adding  machines  handled  subtrac- 
tion). 

Without  going  into  the  detail  of 
how  it  got  that  way,  simply  assume 
that  all  data  in  our  division  problem 
will  be  available  to  us  in  tens  comple- 


SIGN 
EXP      a  MSD     •       n  I 


n  n    n         n  L  SO 


Figure  2:  Register  arrangement  for  floating 
point  binary  coded  decimal  division.  Note 
that  it  is  no  longer  necessary  to  provide  a 
double  size  register  for  Q.  The  imaginary 
decimal  point  is  located  immediately 
following  the  most  significant  digit. 


ment  form,  in  the  format  shown  in 
figure  2.  The  exponent  could  be  in 
binary  coded  decimal  form  (maxi- 
mum values  +  and  —  79,  with  the 
most  significant  bit  used  as  a  sign  bit), 
but  it's  easier  to  keep  it  in  binary 
form,  allowing  a  value  range  of  -1-127 
to  —128,  limited  by  the  program  to 
plus  and  minus  99.  The  format  gives 
nine  significant  digits,  of  which  we 
may  elect  to  hold  out  two  or  three  as 
guard  digits,  and  display  only  six  or 
seven,  rounded  off  according  to  the 
value  of  the  guard  digits. 

There  is  one  more  complication  in 
our  division  routine:  signs.  The 
operation  we  want  to  perform  here  is 
repeated  subtraction  of  absolute 
values,  not  just  the  simple  signed  sub- 
traction for  which  the  tens  comple- 
ment form  can  give  correct  answers. 
When  dividing  -h956  by  —3,  we  do 
not  want  the  remainder  to  become 
larger  and  larger!  So  first  of  all,  look 
at  the  sign  digits  of  the  two  numbers 
(if  a  number  is  negative,  the  9  at  the 
most  significant  digit  position  will  set 
the  N  bit  of  a  condition  code  register. 


just  as  for  binary  operations)  and 
determine  the  proper  sign  for  the  quo- 
tient. Store  this  flag  away  for  the 
moment. 

Next,  if  the  dividend  is  negative, 
use  a  tens  complement  routine  to  get 
its  absolute  value,  and  put  it  back  in 
register  N.  We  might  also  test  it  for  0 
at  this  point,  and  do  an  early  exit  if 
the  answer  is  going  to  be  0.  This 
would  be  appropriate  only  if  we  had 
already  checked  D,  since  D  might 
also  be  0,  and  0/0  would  be  an  inde- 
terminate value,  not  0.  So  don't 
bother  with  the  zero  check  at  this 
point  if  register  N  is  being  processed 
first. 

What  we  do  with  register  D 
depends  on  the  processor  being  used. 
Some  processors  have  decimal  sub- 
tract operations,  or  a  binary  coded 
decimal  adjust  instruction  which  is 
effective  after  a  subtraction.  In  the 
Motorola  6800,  the  DAA  instruction 
works  properly  only  after  an  ADD 
operation  with  register  A  (ADD  A, 
ADC  A  or  ABA).  For  the  6800,  then, 
the     subtraction     function     requires 


8P2SM  PARALLEL/SERIAL  I/O  BOARD 

WITH  MODEM 

iiiLinii 


PARALLEL  PORTS:      a  IN.ns.  M  K.I.iI  hi-ilirr(  irnn.il  hi(s 


SERIAL  PORTS: 


AVAILABLE  BAUD 
RATES: 


Pnrrs  with  .issoi  i.ilcd  tonlrol  lines 
One  Port  TTL  or  Ri-2U. 
Our  Purl   1  n   or  MODEM. 


(07.2 
15), (> 

r(,n 

(8.4 
W.2 
96ni) 
4H0n 

2-4no 

or  Liny 


[(llot).ILI(l 

kilot).iLi(J 

kilob.iuil 

kilobaud 

kilob.iLid 

band 

baud     . 

b.uid 


1760 

1200 

600 

iOO 

150 

110 

75 

27,5 


baud 
baud 
baud 
baud 
baud 
baud 
bauc! 
baud 


r 

I 

I 

I 

I 


$149.. 


Please  rush  the  following 

n      I/O  Card  (kit) 

□       1/0  Card  (assembled) 


usr'r  supplied  baud  rates  up  to  500  kilobaud. 


MODEM: 
BUS  TYPE: 
PRICE: 


Full  Duplex,  answt't  or  originate.  300  Baud      , 
S-100  ,e<^®' 

$14')  (kit 
$149  lass 


x^-e' 


.^■^^ 


■nibled  and  tested). 


CA  residents  add  6% 

MicroDaSys 

P.O.  Box  36051 
Los  Angeles,  CA  90036 

(21 3)  935-4555 


Circle  221  on  inquiry  card. 


August  1979  ©  BYTE  Publications  Inc        223 


register  D  to  be  in  tens  complement 
negative  form,  so  our  subtraction  can 
be  performed  with  an  addition 
instruction.  For  other  processors,  D 
must  be  in  absolute  (positive)  form  if 
a  subtract  instruction  is  to  be  used,  or 
in  complemented  form  for  an  add 
instruction,  depending  on  what  is 
available  in  the  machine. 

So  we  do  or  don't  run  the  data  in 
register  D  through  a  tens  complement 
operation  depending  on  its  present 
form  and  the  form  required  by  our 
division  routine.  While  checking  the 
sign,  we  can  also  note  if  D  is  0;  if  it  is, 
we  set  an  error  flag  and  exit.  If  D  is 
not  0,  check  here  to  see  if  N  is  0,  and 
exit  early  if  it  is  (assuming  register  Q 
is  already  cleared),  thus  saving  a  little 
processing  time. 

Next,  look  at  the  exponent  data  to 
discover  what  the  final  exponent  will 
be.  Subtract  the  D  exponent  from  the 
N  exponent,  but  before  storing  it 
away  check  for  overflow  (a  carry  into 
the  sign  bit,  effectively  reversing  the 
sign  from  what  it  should  be),  or,  if  we 
have  set  limits  of  +  and  —99,  check 
for  a  number  exceeding  these  limits.  If 
the  magnitude  of  the  answer  is  going 
to  be  out  of  limits,  we  may  choose  to 
reject  the  problem,  set  a  warning  flag, 
or  simply  set  Q  to  0  or  999999E99  to 
indicate  that  the  result  is  beyond  the 
capacity  of  the  machine  if  the  pro- 
gram is  simply  a  calculator  program 
without  programmability  or  other 
exotic  features.  For  a  scientific  pro- 
gram, this  sort  of  thing  could  lead  to 
seriou';  and  probably  undetectable 
errors,  and  would  never  do.  For  an 
interpreter  program,  the  exponent 
overflow  should  spring  out  to  an 
error  message  and  halt  the  program. 
If  the  exponent  is  within  limits,  store 


it  as  the  tentative  exponent  for  Q, 
subject  to  later  adjustment. 

Now,  we're  finally  ready  to  divide. 
We  can  skip  the  procedure  done 
earlier  in  running  data  up  to  the  tops 
of  the  registers.  First,  set  up  a  count 
of  nine  (the  number  of  digits  desired). 
Subtract  D  from  N,  with  binary 
coded  decimal  adjustment  as  re- 
quired, and  store  the  difference  in  R. 
If  R  is  positive  (checking  byte  1  in  R), 
increment  the  least  significant  bit  in 
register  Q  (no  need  for  binary  coded 
decimal  adjustment  here  —  the  digit 
will  never  exceed  nine),  transfer  R  to 
N  and  repeat  until  R  is  finally 
negative.  Leave  R  alone  this  time  and 
do  not  increment  Q.  Shift  Q  one  digit 
(four  bits)  left,  starting  at  the  least 
significant  byte  of  the  register  and 
shifting  it  one  bit  left,  repeating  the 
process  four  times.  Then  shift  D  one 
digit  (four  bits)  right,  starting  at  the 
most  significant  byte  of  the  register 
and  going  through  it  four  times.  One 
more  operation  must  be  remembered 
when  working  with  D  in  tens  comple- 
ment form  and  doing  additions:  the 
sign  digit  of  D  must  be  extended  back 
to  the  top  of  the  register.  Do  this  by 
adding  90  to  the  most  significant  byte 
after  we  have  completed  the  shifting 
above.  When  we  get  down  to  the  last 
operation,  register  D  should  be  all  9s 
except  for  the  least  significant  digit. 

Before  going  back  to  the  subtract 
operation,  step  the  operations 
counter  by  one,  and  exit  if  the 
counter  indicates  completion.  When 
the  subtracting  is  done,  check  the 
most  significant  digit  of  register  Q.  If 
it  is  0,  the  result  of  the  first  subtrac- 
tion was  no  good  and  the  initially 
assigned  exponent  for  Q  was  too 
large.  Under  these  circumstances  we 


shift  Q  one  more  digit  to  the  left  and 
reduce  the  exponent  that  was  calcu- 
lated earlier  by  1. 

Now,  everything  is  taken  care  of 
except  the  sign.  If  we  have  a  simple 
calculator  program,  we  can  just  look 
at  the  sign  flag  stored  away  and  either 
do  or  don't  output  a  minus  sign, 
followed  by  the  register  Q  data  in 
absolute  form.  However,  for  most 
applications,  Q  will  have  to  be  stored 
away  for  future  use  in  machine  usable 
form  (as  previously  discussed  in 
figure  2),  just  as  we  got  the  N  and  D 
data  to  start  with. 

So  look  at  the  sign  flag.  If  it  says  Q 
is  negative,  send  Q  through  the  tens 
complement  routine,  then  store  the 
result  wherever  it  belongs.  If  Q  is  to 
be  positive,  store  it  as  is,  with  0  for  a 
sign  digit.  In  either  case,  "park"  the 
exponent  data  next  door,  so  it  can  be 
retrieved  along  with  Q's  digits 
whenever  needed. 

Well,  we  did  it.  A  whole  long  divi- 
sion program  in  binary  coded 
decimal,  with  a  constant  precision 
answer.  Of  course,  we  haven't  actual- 
ly formatted  the  digits  for  output,  or 
converted  our  binary  exponent  to 
signed  ASCII,  or  decided  whether  to 
output  the  number  in  conventional  or 
scientific  notation  (there  really  isn't 
room  on  the  average  printer  for  99 
zeros).  We  also  haven't  figured  out 
how  to  use  the  exponent  to  locate  the 
decimal  point  in  the  printout  of  con- 
ventional notation  data.  But  these 
things  are  incidental.  Once  past  the 
conceptual  problem  of  the  "engine"  in 
this  dividing  machine,  the  design  of 
the  transmission,  differential,  seat 
cushions  and  bumpers  should  be  no 
barrier  to  rapid  progress  in  any  direc- 
tion that  suits  the  user.B 


G, 


PET    ANALOG    INPUT 

Analog  to  Digital  Conversion  System  for  the  Commodore  PET  Computer 


•YBTVMI 


Qive    UTe   PEl     Ui^    ability    to    Bense* 
ofSBure*    and   control     the   world    around 
it    wiUi   rwVI    SYSTEMS   niodules.    Just    F-lu^ 
U-te    PETSETl    into    tltG    PET    to    3et    16 
ct"»annels   of    analog    inr-u t .    Screw 
t-erminals    are   F-rovided    for    each   channel 
so    «ou    can    hooK    u  f-    Joys  t  i  cK  s  r    F'O  t  s  t    or 
whatever    aF-Fi^OF^^iate    sensors    btou    have. 

Each   of    the    16    analog    in^-uts^    in 
the   ran^e   of    0    to    5»12    volts*    is 
fTonverted    to   a   decimal    number    between    O 
and    I?^5   (  20    millivolts   F-er    count  ). 
Convef'sion    time    is    100    microsconds  * 

In    addition  r     the    F'ETMOD   F-rovides 
two    .IEEE   F^DTts    and    one   user    port    as 
well    as    a   tiAM   SYSTEMS    F-ort. 

Software    is   F-rovided.    A   one    line 
program    is    all    that    is    necessary    to 
read    a   channel . 


1-AIM161 
1  - PETMOD 
1- CABLE  A24 
I-MANM001 
1-P0W1 


16   ANAU3Q   INPUTS-8  BITS-100  MICROSEC 


24  INCH   INTERCONNECT   CABLE 
MANIFOLD  MODULE-SCREW  TERMINALS 
FOR  INPUTS, REFERENCE,  GROUND 
POWER   MODULE 


TRS-BO   IHTCRFllCE 


OISPL*Y  MODULE 


r      OPIO        1  r     BS-2)?     1 

L      MOO      J  L      yoD      J 


VISA 

ADD 


PETSETla    for    110  VAC    $295 
PETSETIe     for    230  VAC    $305 


CONNECTICUT     microCOMPUTER ,  Inc. 

150  POCONO  ROAD 

BROOKFIELD,  CONNECTICUT  06804 

TEL:  (203)  775-9659        TWX:  710-456-0052 

AND    M/C   ACCEPTED- SEND   ACCOUNT    NUMBER,  EXPIRATION  DATE   AND    SIGN   ORDER. 

$3   PER  ORDER  FOR  SHIPPINQ   a   HANDLING  -  FOREIGN  ORDERS  ADD   10%   FOR   AIR   POSTAGE. 


224        August  1979  ©  BYTE  Publications  Inc 


Circle  78  on  inquiry  card. 


Whsf 8  New? 


16  K  Byte  Dynamic  Programmable 
Memory  Board 


Called  SupeRam,  this  S-100  bus  com- 
patible 64  K  byte  dynamic  program- 
mable memory  board  is  available  from 
Alpha  Micro,  17881  Skypark  N,  Irvine  CA 
92714.  It  is  completely  compatible  with 
the  16  bit  Alpha  AM-100  processor. 
SupeRam  is  a  high  density  program- 
mable memory  board  capable  of  storing 
up  to  64  K  bytes  of  data  on  a  single 
board.  Completely  S-100  bus  compati- 
ble, it  utilizes  16  K  byte  dynamic  pro- 
grammable memories  to  achieve  maxi- 
mum bit  density,  minimum  power  dissi- 
pation, and  optimum  cost  and  perfor- 
mance ratio. 

Refresh  requirements  are  satisfied  on 
the  SupeRam  board  without  support 
from  the  processor  and  are  therefore 
transparent  to  the  user.  Exact  and 
reliable  internal  timings  are  generated 
on  board  using  digital  delay  line  tech- 
niques. Memory  is  addressable  as  in- 
dependent 16  K  byte  blocks,  providing 
maximum  capability  with  existing  Alpha 
Micro  Systems. 

circle  559  on  inquiry  card. 


New  Software  for  Computalker 
Speech  Synthesizer 

Computalker  Consultants,  designers 
and  developers  of  the  Computalker  CT-1 
Speech  Synthesizer  (a  device  that 
enables  a  computer  to  speak)  has  an- 
nounced the  availability  of  the  new  Soft- 
ware Package  II.  Designed  to  expand  the 
range  of  applications  of  the  Compu- 
talker CT-1,  Software  Package  II  con- 
tains: CTEDIT,  a  new  parameter  editor; 
CSEDIT,  an  editor  for  the  CSR1  input; 
CTEST,  a  CT-1  hardware  diagnostic; 
PLAYDATA,  to  hear  the  data  files;  MEM- 
VOICE,  a  vocal  memory  dumper;  KEY- 
PLAY,  a  subroutine  to  play  letters  and 
digits;  and  PIANO,  a  simple  musical 
keyboard. 

Software  Package  II  is  written  in  8080 
assembly  language  and  includes  the 
source  code.  It  is  priced  at  $45  and  is 
available  on  CP/M  format  8  inch  floppy 
disk;  North  Star  and  Micropolis  disks; 
Tarbell,  CUTS,  MITS  ACR  cassette  for- 
mats; and  paper  tape.  For  further  infor- 
mation, contact  Computalker  Consul- 
tants, 1730  21st  St,  Suite  A,  Santa 
Monica  CA  90404. 

Circle  560  on  Inquiry  card. 


Z-80  Assembler  Package 

ZASSEMBL  is  a  package  of  software 
designed  for  development  of  Z-80 
assembly  language  programs. 
ZASSEMBL  is  written  in  North  Star 
BASIC  with  critical  routines  imple- 
mented in  Z-80  machine  code.  Zilog  sug- 
gested mnemonics  are  used  exclusively 
for  all  696  standard  Z-80  instructions. 
The  package  consists  of  three  BASIC 
programs: 

Editor  enters  and  edits  source 

text 

Assembler  one  pass  file  oriented 
assembler  with  back- 
patching  of  forward  re- 
ferences. Inserts  ASCII 
hexadecimal  represen- 
tation of  the  op  code 
into  the  source  code 

Loader  generates    binary    exe- 

cutable code  and  loads 
it  into  either  program- 
mable memory  or  a  file 

The  minimum  hardware  requirements  in- 
clude a  Z-80  processor,  32  K  bytes  of  pro- 
grammable memory,  one  5  inch  floppy 
disk  drive  with  a  controller,  interactive 
terminal,  and  optional  printer  as  an  out- 
put device. 

The  package  is  priced  at  $35  which  in- 
cludes 5  inch  floppy  disk,  a  manual  with 
full  program  listing  in  BASIC,  and  Z-80 
commented  assembler.  For  further  infor- 
mation, contact  Nemco  Data  Processing, 
9  Walnut  St,  Rutherford  NJ  07070. 
Circle  561  on  Inquiry  card. 


Programming  the  6502 

Programming 
the  6502  by 
Rodney  Zaks  is 
an  educational 
text  designed  to 
teach  program- 
ming from  the 
ground  up.  It  will 
show  the  reader 
both  the  advan- 
tages and  disad- 
vantages of  us- 
ing the  6502.  The 
knowledge  of  pro- 
gramming gained 
with  this  book  may  be  applied  to  other 
microprocessors.  Structured  from  simple 
to  complex,  this  310  page  text  may  be 
used  by  the  person  who  has  never  pro- 
grammed as  well  as  by  programmers 
wishing  to  familiarize  themselves  with 
the  6502.  The  book  is  priced  at  $10.95 
and  is  available  from  Sybex,  2020  Milvia 
St,  Berkeley  CA  94704. 

Circle  562  on  Inquiry  card. 


64  K  Byte  Programmable 
Memory  Card 


This  64  K  byte  programmable  memory 
card  will  reduce  system  card  count  by 
using  only  one  S-100  card  slot.  It  uses  the 
same  power  as  the  standard  16  K  byte 
programmable  memory  card,  thus  lower- 
ing power  requirements.  Buffered  signal 
lines  mean  less  loading  on  buses. 
Memory  is  expandable  in  16  K  byte  in- 
crements up  to  64  K  bytes  and  memory 
may  be  disabled  in  256  byte  blocks  for 
read  only  memory  programs.  The  fast 
cycle  time  of  the  new  16  by  1  dynamic 
programmable  memory  means  no  wait 
states  are  needed  for  reads,  writes  or 
refreshing.  The  memory  card  handles 
refresh.  For  more  information,  contact 
Microcosm  Inc,  534  W  9,460  S,  Sandy  UT 
84070. 

Circle  563  on  inquiry  card. 


Attention  Readers  and 
Vendors.  .  . 

Where  Do  New  Products  Items 
Come  From? 

The  information  printed  in  the 
new  products  pages  of  BYTE  is 
obtained  from  "new  product"  or 
"press  release"  copy  sent  by  the 
promoters  of  new  products,  if  in 
our  judgment  the  information 
might  be  of  interest  to  the  per- 
sonal computing  experimenters 
and  homebrewers  who  read 
BYTE,  we  print  it  in  some  form. 
We  openly  solicit  releases  and 
photos  from  manufacturers  and 
suppliers  to  this  marketplace.  The 
information  is  printed  more  or 
less  as  a  first  in  first  out  queue, 
subject  to  occasional  priority 
modifications.  While  we  would 
not  knowingly  print  untrue  or 
inaccurate  data,  or  data  from 
unreliable  companies,  our  capa- 
city to  evaluate  the  products 
and  companies  appearing  in  the 
"What's  New?"  feature  is  neces- 
sarily limited.  We  therefore  can- 
not he  responsible  for  product 
quality  or  company  performance.  <> 


August  1979  ©  BYTE  Publicalions  Inc        225 


I 


TO  ORDER  CALL  TOLL  FREE  800-223-7318 


^^  PET  BUSINESS  SYSTEM 


PET  2001 -16/32K 

The  PET  is  now  a  truly  sophisticated  Business  System  with  the 
announcement  of  the  Floppy  Disk  and  Printer.  This  is  an  ideal 
business  system  for  most  professional  and  specialized  fields: 
medicine,  law,  dental,  research,  engineering,  toolmaking, 
printing,  education,  energy  conservation,  etc. .  .  . 
The  PET  Business  System  as  a  management  tool,  delivers 
information  to  all  levels  of  Business,  previously  attainable  only 
with  equipment  many  times  more  expensive.  The  PET 
Business  System  is  one  of  the  most  cost  efficient  business 
tools  today.  Here  are  just  a  few  of  the  cost-saving  uses  in  the 
corporation,  professional  office  or  small  business:  stock 
control,  purchasing,  forecasting,  manufacturing  costing, 
customer  records,  mailing  lists,  etc.  ... 


Features  Include: 

•  16  or  32K  bytes  RAM  user  memory 

•  14K  ROM  operating  system  including  a  machine 
language  monitor 

•  Full-sized  Business  Keyboard 

•  Upper/Lower  case  and  64  graphics  characters 

•  9-inch  CRT 

•  8K  ROM  expansion  sockets 

•  File  management  in  operating  system 

16K-  $995, 
32K  -  $1295 


DUAL  DRIVE  FLOPPY  DISK  2040 


The  Dual  Drive  Floppy  is  the  latest  in  Disk  technology  with 
extremely  large  storage  capability  and  excellent  file 
management.  As  the  Commodore  disk  is  an  "Intelligent"      ) 
peripheral,  it  uses  none  of  the  RAM  (user)  memory  of  the  PET. 
The  Floppy  Disk  operating  system  used  with  the  PET  computer 
enables  a  program  to  read  or  write  data  in  the  background 
while  simultaneously  transferring  data  over  the  IEEE  to  the 
PET.  The  Floppy  Disk  is  a  reliable  low  cost  unit  and  is 
convenient  for  high  speed  data  transfer. 
Due  to  the  latest  technological  advances  incorporated  in  this 

Model  2040A  Single  Disk  Unit  -  $895 


disk,  a  total  of  360K  bytes  are  available  in  the  two  standard  51/4- 
inch  disks,  without  the  problems  of  double  tracking  or  double 
density.  This  is  achieved  by  the  use  of  two  microprocessors 
and  fifteen  memory  IC's  built  into  the  disk  unit. 

Features  Include: 

•  360K  bytes  storage  ■  4K  encoder  and  decoder  in  ROM 

•  6504  microprocessor-controlled   *  4K  RAM 

•  8K  operating  system  in  ROM        •  Uses  single  or  double  sided  floppies 


TRACTOR  FEED  PRINTER  2022 


(Next  day  delivery  available.) 


MODEL  2022 


The  Tractor  Feed  Printer  is  a  high  specification  printer  that  can 
print  onto  paper  (multiple  copies)  all  the  PET  characters  - 
letters  (upper  and  lowercase),  numbers  and  graphics  available 
in  the  PET.  The  tractor  feed  capability  has  the  advantage  of 
accepting  mailing  labels,  using  standard  preprinted  forms 
(customized),  check  printing  for  salaries,  payables,  etc. 
The  PET  is  programmable,  allowing  the  printer  to  format  print 

Model  2023  (Friction  Feed)  -  $849 


for:  width,  decimal  position,  leading  and  trailing  zero's,  left 
margin  justified,  lines  per  page,  etc.  It  accepts  SVj-inch  paper 
giving  up  to  four  copies. 

Features  Include: 

•  150  cps      •  6504  microprocessor-controlled   •  '^K  RAM  buffer 

•  Bottom  and  rear  tractor  feed  •  4K  operating  system  in  ROM 


CABLE  FROM  PET  TO  DISK  OR  PRINTER  - 
CABLE  FROM  PRINTER  TO  DISK  -  $49 


FULL  SYSTEM  NOW  IN  STOCK  FOR  IMMEDIATE  DELIVERY! 


SUPER  WORD  PROCESSING  SYSTEM 


$2395  complete 


IS    POmnlPtP  System  Includes:  •  Anderson  Jacobson  841  SelecttJc  I 

**    wi^iii|^i\,ftw  •  16K  PET  with  Full  Sized  Keyboard         •  Inlerface 

with    SOf  twirl  rP         'Tape  Drive  Unit  "Super  Word  Processing  Software 


PET 


6502  anywhe'R  on  ihG  page.  Up  and  down  screen  scrolling  make: 

T  computer  Gdiling  a  breeze!  Commands  include  end-to-end  cursor  line 


J  as  typing  letters,  reporls,  and  manuscripis,  tor  SCAN,  INDENT,  TAB,  sofl  HYPHEN)  for  splitting  syllables  at 

iiling  lists,  and  for  filling  oul  forms.  The  software  'he  end  of  a  line,(  and  four-direction  cursor  control.  Output 

upporl  any  inexpensive  printer  and  even  high  tormatling  incluUes  dynamic  print  control,  indentation,  right 

printers  with  incremental  and  proportional  letter  lustification.  line  width  and  line-!o-line  spacing  and 

Super  Word  Processor  easily  creates,  edits.  proportional  ielterspacing 

^d  formats  text.  It  can  merge  multiple  texts.  In  -^Iso  included  aie  programming  capabilities  (or  performing 

imands,  the  system  has  automatic  text  such  uselul  tasks  as  direct-mail  form-letter  typing,  multiple 

.     ,  .  .  iminates  the  need  for  carriage  returns  column  printing,  and  automatic  multiple  forms  entry.  You  may 


igt 


sys 


BUSINESS  SOFTWARE  FOR 
PET  BUSINESS  SYSTEM 


PERIPHERALS  FOR  PET 


•  Super  Word  Processing  Package 
(disk  &  tape  versions) 

•  Real  Estate 

•  Statistics 

•  Banking  &  Finance 

•  t^aW  List  Management 

•  Data  Base  System 


•  Small  Business  Package 
(A/R.  A/P.  G/L) 

•  General  Ledger 

•  Super  Random  Access 

•  Cash  Receipts  & 
Disbursements 

•  Inventory  Control 
(for  manufacturers) 


Min  Credit  Card 
Order  $75 


VIST 


N.Y.  residents  add  8%  sales  tax  •  Same  day 
shipment  on  prepaid  and  credit  card  orders 
•  Add  $5    sfiipping  for  computers,  $3  for 
boards,  $.25  each  cassette  tape. 

Open  Mon-Fri  10-6  Sat  10-4 


•  24K  Memory  Expans 

•  16K  Memory  Expans 

•  PET  to  RS232  Serial 
'  2  Way  SL-rial/Commi 
■  Modem  Board  tor  PE 
'  Analog  to  Digital  Bo 

for  16  Devices 


PET  MUSIC  BOX 

Add  music  and  sound  effects 
to  your  programs.  Compose. 
play,  and  hear  music  on  your  PET. 
Completely  self-contained 
(no  wiring).  Free  3  programs 
including;  Star  Wars  theme, 
sound  effects,  etc.  $39. 


NEW! from 

Eventide 
AUDIO 
SPECTRUM 
ANALYZER 

•  Mounts  inside  the  PET 

•  Third-Octave 
audio  spective  analysis 

•  Complete  with  software 
and  documentation 

•  Replaces  equipment  costing 
thousands  of  dollars 


MARK  SENSE  CARD 
READER  $750 

^V  •  Automatic  turn-on  and  card  feed| 

>  Ideal  for  marking  test  scores 

*  Accepts  any  length  card 

•  Perfect  for  schools  &  business  j 


TO  ORDER  CALL  TOLL  FREE  800-223-7318  ,46,^  s 

TU^  r^OlVilDI  ITCTD    CA^^TT^DV      ^85  Lexington  Avenue  750  Third  Avenue  New  York.  N,Y,  10017 
I  I IC?  V^V^IYirU  I  en    r^W^  l  \JT\  T  (212)  687-5001   (212)  PET-2001  Foreign  order  desk  -  Telex  6400bb 


226       BYTE  August  1979 


The 


? 


SUPEXRAIN 


TM 


INTE^TEC 

DATA 

SYSTEMS 

ONLY 

$2995 


TO  ORDER  CALL  TOLL  FREE  800-223-7318 


$1495  Complete! 
16K  Model  add  $200 
32K  Model  add  $500 


IV  $795 

•  14K  ROM  Operating  system 

•  8K  RAM  Memory 

•  9"  Video  Monitor 

•  Built  in  Keyboard 

•  Digitally  controlled  tape 


More  than  an  intelligent  terminal,  theSuperBratn  outperforms  many  other 
systems  costing  three  to  five  times  as  much.  Endowed  with  a  hefty  amount  of 
availabie  software  {BASiC,  FORTRAN,  COBOL),  the  SuperBrain  is  ready  to 
take  on  your  toughest  assignment.  You  name  it!  General  Ledger.  Accounts 
Receivable,  Payroii.  Inventory  or  Word  Processing. .  .the  SuperBrain  handles 
ali  o1  them  with  ease. 

Your  operators  will  praise  theSuperBrain's  good  looks.  A  full  ASCII  keyboard 
with  a  numeric  keypad  and  function  keys.  A  non-glare,  dynamically  focused, 
twelve  inch  screen.  All  in  an  attractive  desktop  unit  weighing  less  than  a 
standard  office  typewriter.  Sophisticated  users  will  acclaim  SuperBrain's  twin 
2-80  processors  which  transfer  data  to  the  screen  at  38  kilobaud!  Interfacing  a 
printer  or  modem  is  no  problem  using  SuperBrain's  RS-232C  communications 
port. 

Features  Include: 

•  two  dual-density  minifloppies  with  320K  bytes  of  disk  storage 

•  64K  of  RAM  to  handle  even  the  most  sophisticated  programs 

•  a  CP/M  Disk  Operating  System  with  a  high-powered  text  editor, 
assembler  and  debugger. 


APPLE  1 1  PLUS     0NLY$1 1 95 


A  complete  self-containeri  computer  system  with  APPLESOFT  floating  point 
BASIC  in  ROM,  lull  ASC 1 1  keyboard  in  a  light  weight  molded  carrying  case. 

Features  Include: 

•  auto-start  ROM  •  Hi-Res  graphics  and  15  color  video  output. 


•  Expandable  to  4eK. 

Disk $595 

Add-on  Disk 495 

Pascal  Card 495 

Business  Software 625 

Monitor 149 

Printer  Card 180 


Programmer's  Aid 50 

Speechlab 229 

Lightpen 250 

Communication  Card 225 

Modem  200 

EPROM  Programmer 100 


SALE! 


S35  of  Soltwafewilti  purchase  of  any 
computer  on  Itiis  page 


Send  for  FREE  Illustrated  Software 
Catalog  for  PET/APPLE/TRS-80 
with  liundreds  of  selections  from 
all  over  the  world. 


Compucolorll 


i  hE 


DttW 


chf 


gives  you. 

•  13"  Color  Display 

•  Advanced  Color  Graphics 

•  51K  Disk  Built-in 

•  16K  ROM  Operating  System 

•  SK  RAM  User  Memory 

•  4K  RAM  Refresh 

•  e080A  Microcomputer 

•  RS-232  I/O 

Every  unit  comes  with  an  extended  DISK- 
BASIC  that  has  full  file  management  capa- 
bility resident  m  the  COMPUCOLOR  11  m 
16K  of  ROM  Colof  IS  fantastic,  but  COM- 
PUCOLOR M  has  the  power  to  handle  com- 
plex tasks  and  small  busmess  applications 
An  impressive  software  library  suppler 


I^SPECIAL  SPECIAL 

$200  FREE  Software  with  .^^  I 
purchase  of  8K  PET  >^  I 

BUSINESS  COMPUTER 


DATA  GENERAL 
micro  NOVA 

The  uttimaie  in  small  business  compuieis 
when  mauhed  with  COMPUTER  FAC- 
TORY'S minicDinpulef:  Sottwaie  Accounts 
Heceiuable/Payable.  Inveniorv  Coniroi/ 
Order  Entry,  General  'Ledgei,  Pavtoii  Sys 
tems  Irom  aboui^ 


>l 


/ 

'  DataGeneral 


"$13,500 


BUSINESS 

COMPUTER 

IfVISAI 


The  low  cosi  solulion 

tor  all  small  business 

problems   A  wide  variety 

of  software  IS 

available  (or  ail  your  needs 

PCS  series  include  dual  lloppies.  32K  R/ 

I  O,  DOS.  BASIC 

•  PCS-42  I400KBI   $3296 

•  PCS-44  1780KB)   $3995 

VDP-42  series  adds  video  terminal,  key- 
board and  VIO  lo  above 

•  VDP-42     $4995  •  VDP-44 

•  VDP.80     $7995  •  VDP  180 


$5595 
$8995 


SUPER  SOFTWARE 

Word  ^^'^  super  advanced  full  function  program  will  allow  | 

ProcesBlna     ^"^  *°  create  text  from  PET  or  terminal  keyboard.  [ 
p1   PFT  •  INSERT  •  DELETE  •  CENTER  •  UNDERLINE  • 

POrfei  p^LL    SCREEN    EDITING    •    MOVE    LINES    OR 

BLOCKS  •  SAVE  TEXT  ON  TAPE  •  AUTO  PRINT  [ 

FEATURE... .$45 


This  fantastic  program  disk  allows  the  statistician. 
Moving  mathematician,  trader  in  stocks,  money  or  , 

Average        commodities,  the  ability  to  maintain  30  database      \ 
Plot  series  of  up  to  300  values  and  plot  3  different  moving 

Program        averages  of  a  series  at  the  same  time,  in  3  different 
FOR  colors.  Files  can  be  updated,  deleted,  changed, 

APPLE  extended,  etc. 

A  sure  value  disk  at  only  $40! 

Word  Processing  For  Apple  on  disk. ..$50  ' 


78 
Ke 

PiocewD 
board  and 

NumeTic  Pad 

IK 

4AM  (up 

o3ZK) 

Ser 
Oil 

al  and  Pai 
CasiBlie 

llel  I/O 

/O 

30 

ed  Oispla 

¥ 

S  lOOCompai 
M  User  Oelin 

b!e 

d  ChataciMS 

SORCERER 

f 

SPECIAL 
12'  Video  Monitor 
for  SORCERER 
($299  value)        I 

ONLY 

$125  with  8K  unit 
95  with  IBKunit 
65  with  32K  unit 


ANDERSON JACOBSON 


841  I/O  Tfrminal 

Ideal  lor  word  procauing  ind  imill  tjiui- 


„NOW 

'I  Priming 


IN 


•  ASC  1 1  Code 

•  l&cpiPrinloi 

•  High  QualilvSelKti 

•  Uie  Keyboard  for  PET 

•  RHiable  hiivy  rluly  Mechaniim 

•  Compleidy  Returbiihid  by  A.J. 

•  Servict  in  15  Major  Cilin 


l|   tJiUI'        ,Mt^ll 

STOCK'I 

(^raJlil  - 

$1095 

Serial 

$1195 


RADIO  SHACK  •  PET  •  SORCERER 
IaPPLE  •  COMPUCOLOR  •  ETC. 


PRINTERS  •  PRINTERS  •  PRINTERS 


The  COMPUTER  FACTOHYS  extensive      CENTRONICE  779.  .. .  $1095 

inventory  and  wide  selection  o(  computer  TRENDCOM 375 

printers  assures  you  of  (inding  the  printer  INTEGRAL  DATA  ....      795 
best  suited  for  your  needs  and  QUME  or  DIABLO  ... .    3400 

specifications.  The  following  printers  work  COMPRINT 560 

well  with  all  known  personal  compulers 


Min  Credit  Card 
Order  $75 


VISA" 


Open 
Mon.-Fri. 
10-6 


NY    residfifiis  add  8%  sales  tax  •  Same  day    Qaf     10   d 
shipment  on  prepaid  and  credit  card  orders    ^"•'     '  W"^ 
•  Add  55    shipping  for  computers.  S3  for 
boards,  S  25  each  cassette  tape. 


NEW 
CENTRONICS  730 

50  CPS  -  MICROPROCESSOR 
CONTROLLEOI 

Tractor  &  Friction  Feed  •  Uses 
Single  Sheets.  Roll,  Fanfold»  Upper 
&  Lower  Case  •  Light  Weight 

Parallel  $995 

Serial  $1045„<-^^  ^^^4 


TO  ORDER  CALL  TOLL  FREE  800-223-7318 


-\S^t^-' 


&f^ 


i\t« 


The  COMPUTER  FACTORY 


>-■_    uui#-cc.«j-f  «J  lu  /.^■J^^EIIJI^-  (46th  St.) 

485  Lexington  Avenue  750  Third  Avenue  New  Yorl<,  N.Y.  10017 
(212)687-5001    (212)  PET-2001  Foreign  order  desk  ■  Telex  640U55     . 


BYTE  August  1979         227 


Whsl's  New? 


PERIPHERALS 


Video  Board  Features  High  Density  and  Reverse  Video 


A  higher  density  version  of  the 
Flashwriter  Video  Board,  featuring  op- 
tionally controlled  reverse  video,  has 
been  announced  by  Vector  Graphic  Inc, 
31364  Via  Colinas,  Westlake  Village  CA 
91361.  Displaying  80  characters  by  24 
lines,  the  Flashwriter  II  uses  an  8  by  10 
dot  matrix  to  produce  crisp,  sharp  reso- 
lution for  1920  character  positions  in  a 
2048  byte  memory  block.  In  addition  to 
normal  video,  reverse  video  is  optionally 
controlled  by  the  higher  order  bit  of  the 
character  code.  As  many  as  256  char- 
acters can  be  generated  by  2708/2716 
erasable  read  only  memories  which  may 
be  user-programmed  for  special  symbols 
or  graphic  displays. 

The  Flashwriter  II  allows  rapid  up- 
dating of  the  screen  via  memory  mapped 
I/O  (input/output).  Special  circuitry 
prevents  flashes  on  the  screen  when  up- 
dating memory,  and  a  keyboard  port 
with  latched  data  provides  easy  inter- 
face to  Vector  Graphic's  Mindless  Ter- 
minal or  other  parallel  keyboards. 

The  Flashwriter  II  is  priced  at  S320 
assembled. 

Circle  526  on  Inquiry  card. 


Low  Cost  Alphanumeric  Printers 

These  two  compact,  light  weight,  5  by 
8  dot  matrix  printers  are  being  offered  by 


American  Micro  Products  Inc,  6550 
Tarnef,  Houston  TX  77074.  The  12 
column  PL12  at  $59.95  and  the  20 
column  PL20  at  $99.95  provide  quiet 
economical  hard  copy  output.  A  general 
specification  manual,  art  work  for  a 
printed  circuit  board  (available  only  with 
the  PL20),  parts  lists,  flow  chart,  and 
schematics  describing  the  8  bit  parallel 
interface  (Centronics  type)  are  included 
with  each  printer.  In  addition,  the 
microprocessor  control  device  and  the 
printed  circuit  board  (PL20  only)  are 
available  as  options.  These  elements  of 
the  interface  are  priced  at  $99.95  and 
$29.95,  respectively. 

Circle  527  on  Inquiry  card. 


FCC  Approved  Data  Modem  and 
Communications  Adapter 

This  S-100  bus  compatible  data 
modem  and  communications  adapter, 
designated  the  MM-103,  has  been  ap- 
proved by  the  Federal  Communica- 
tions Commission  (FCC)  for  direct  con- 


nection to  the  public  switched  tele- 
phone network  without  the  use  of  a 
DAA  (CBS  or  CBT).  Under  software 
control,  it  can  originate  and  answer 
calls  automatically.  It  can  also  dial 
the  telephone  automatically. 

In  addition  to  normal  digital  com- 
munications capabilities,  the  MIVl-103 
provides  auxiliary  inputs  and  outputs 
that  will  interface  with  computer  sys- 
tem power-up  control  (on  telephone 
ring  or  external  input);  voice  recorder 
announcement  equipment;  and  alarm 
recognition  and  automatic  dial  equip- 
ment. 

The  modem  is  available  fully  as- 
sembled for  $319.95  which  includes 
an  unconditional  ten  day  return  privi- 
lege and  a  one  year  limited  warranty. 
For  further  information  contact  Poto- 
mac Micro-Magic  Inc,  POB  11149, 
Alexandria  VA  22312. 

Circle  528  on  Inquiry  card. 


New  Family  of  RS-232 
Switching  Units 

A  new  family  of  low  cost  miniature 
switching  units  has  been  introduced  by 
Giltronix  Inc,  3156  Avalon,  Palo  Alto 
CA  94306.  The  family,  called  RS232-X, 
switches  serial  RS-232  peripherals  be- 
tween several  driving  sources.  Model 
RS232-X3  allows  three  driving  sources. 
By  turning  the  three  position  switch 
mounted  on  the  RS232-X3,  the  user  can 
select  the  driving  device  that  will  ex- 
change data  with  the  peripheral  unit.  A 
unique  arrangement  allows  the  cas- 
cading of  two  or  more  RS232-X  switches, 
thereby  expanding  the  selection  from 
three  devices  to  five  or  more.  Model 
RS232-XF  is  similar  to  the  RS232-X3,  but 
switches  additional  signals.  Both  come 
with  25  pin  female  connectors.  The  price 
of  the  RS232-X3  is  $64.95  assembled,  and 
$47.95  in  kit  form.  The  RS232-XF  is 
$78.95  assembled,  and  $59.95  in  kit  form. 
Circle  529  on  inquiry  card. 


TRS-80  Speech  Synthesizer  from 
Computalker 

Computalker  Consultants,  developer 
of  the  Computalker  CT-1  Speech  Syn- 
thesizer, has  announced  the  availability 
of  the  Model  CT-1T,  a  speech  synthesizer 
adapted  specifically  for  the  Radio  Shack 
TRS-80  microcomputer  equipped  with 
Level  II  BASIC  and  a  minimum  of  16  K 
bytes  of  programmable  memory  (32  K 
bytes  recommended).  The  Model  CT-1T 
Speech  Synthesizer  is  a  completely  self- 
contained  unit  with  its  own  AC  power 
supply.  The  interface  circuit  board  con- 
tains an  on  board  2  W  audio  amplifier,  an 
S-100  connector  for  the  CT-1  speech  syn- 
thesizer board,  and  a  Radio  Shack  com- 
patible edge  connector.  An  interconnect 
cable  (supplied  with  the  Model  CT-1T) 
connects  the  unit  to  the  TRS-80  bus  con- 
nector on  either  the  keyboard  or  expan- 
sion interface.  Standard  phone  jacks  pro- 
vide connections  for  external  speakers, 
headphones  or  external  amplifier  (not 
provided). 

The  Model  CT-1T  can  be  operated  in 
two  modes:  direct  parameter  control  and 
phonetic,  and  it  is  supported  by  a  grow- 
ing library  of  software.  Each  unit  is  ship- 
ped with  a  hardware  user  manual,  basic 
set  of  software  consisting  of  CTEDIT 
Parameter  Data  Editor  and  speech 
parameter  data  files  Hello,  Letters  and 
Digits,  and  the  Computalker  CSR1 
Synthesizer-by-Rule  Software  program. 
All  software  is  available  in  a  choice  of  5 
inch  disk  or  standard  cassette. 

The  CT-1T  is  priced  at  $595.  A  special 
unit  is  available  for  persons  who  already 
own  a  Model  CT-1  and  is  priced  at  $225. 
For  further  information,  contact  Com- 
putalker Consultants,  1730  21st  St,  Suite 
A,  Santa  Monica  CA  90404. 

Circle  530  on  Inquiry  card. 


228       August  1979  ©  BYTE  Publications  Inc 


ITHACA  AUDIO 


THE  OEM  MARKETPLACE 


Assembled   and   Tested 
Added  at  Ithaca  Audio 

Field-proven 
reliable  engineering 


Over  15,000  boards  worldwide  prove  Ithaca 
Audio  provides  the  quality  and  reliability  you 
demand. 

Ithaca  Audio  Boards  are  fully  S-100  com- 
patible, featuring  gold  edge  connectors  and 
plated-through  holes.  All  boards  (except  the 
Protoboard)  have  fully  buffered  data  and 
address  lines,  DIP  switch  addressing,  solder 
mask  and  parts  legend. 

•  Z-80  CPU  Board  still  the  most  power- 
ful 8  bit  central  processor  available.  Featuring 
power-on-jump,  provision  for  on-board  2708. 
Accepts  most  8080  software. 

A&T  4  mHz       $205.00 

A&T  2  mHz       $175.00 

Blank  PC       $  35.00 

•  Disk  Controller  Board  controls  up 

to  4  single  or  double  sided  drives.  Supported 
by  a  host  of  reliable  software  packages: 
K2  FOOS,  Pascal,  Basic  and  complete  diag- 
nostics. 

A&T       $175.00 
Blank  PC       $  35.00 

•  K2  FDOS  Disk  software  In  the  DEC 
tradition.  Includes  character  oriented  text 
editor  (TED),  File  Package  (PIP),  Debugger 
(HDT),  Assembler  (ASMBLE),  HEXBIN,  1 
COPY,  System  Generator  (SYSGEN)  and 
more.  Command  syntax  follows  Digital's 
0S-8/RT-11  format.  First  in  a  family  of  high 
level  software.  Basic  and  Pascal  available 
now.  Soon-to-be-released  Fortran. 

K2  Disk       $  75.00 

•  Video  Display  Board  features  the 

full  128  upper/lower  case  ASCII  character 
set.  Easy-to-read  16  line  x  64  character 
format  can  be  displayed  on  an  inexpensive 
video  monitor  or  modified  TV  set.  Includes 
TTY  software.  Add  our  powerful  K2  FDOS  to 
create  a  versatile  operator's  console. 

A&T       $145.00 
Blank  PC       $  25.00 

•  8K  Static  RAM  Board  High  speed 

static  memory  at  a  reasonable  cost  per  bit. 

Includes    memory    protect/unprotect    and 

selectable  wait  states. 

A&T  250  ns       $195.00 

A&T  450  ns       $165.00 

Blank  PC       $  25.00 

•  2708/2716  EPROM  Board  indis- 
pensable for  storing  dedicated  programs  and 

often  used  software.  Accept  up  to  16K  of 
2708's  or  32K  of  271 6's. 

A&T  (less  EPROMs)       $  95.00 

Blank  PC       $  25.00 

2708  EPROMs       $  11.00 

circle  191  on  inquiry  card. 


The  leading  manufacturer  of  blank  S-100 
boards  Is  adding  a  new  wrinkle— now  all  their 
boards  are  available  assembled  and  tested. 
"This  is  a  natural  progression  for  the  com- 
pany" according  to  Mr.  James  Watson, 
President.  "Actually  we've  been  supplying 
assembled  and  tested  for  some  time  to  our 
volume  customers  and  OEM's,  particularly 
those  overseas.  Our  production  staff  is  now 
fully  up  to  speed,  so  just  about  everything  is 
available  from  stock."  The  company  sched- 
uled 6  months  to  phase  in  assembled  and 
tested  to  allow  time  to  build  base  Inventories, 
before  offering  the  boards  to  the  public.  "We 
feel  this  is  quite  important.  A  lot  of  companies 
have  earned  themselves  a  bad  name  in  this 
business  by  announcing  products  they  can't 
really  deliver.  We  simply  won't  do  that."  Mr. 
Watson  further  explained  that  Ithaca  Audio 
Intends  to  remain  leader  in  blank  boards  and 
expects  to  release  a  minimum  of  6  new 
designs  by  August,  which  will  be  offered  both 
blank  and  assembled  and  tested. 

Memory  Prices 
Tumble 

Ithaca  Audio  first  to  break 
10/Byte  Barrier 

By  cutting  prices  for  32K  of  RAM  to  $319 
Ithaca  Audio  t>ecomes  the  first  computer 
vendor  ever  to  offer  high  speed  memory  for 
less  than  a  penny  a  byte.  Commenting  on  the 
announcement,  Steve  Edelman,  Director  of 
Engineering  said  "Just  a  few  years  ago 
people  were  wishing  for  a  penny  a  bit,  and 
even  now  memory  for  most  large  computers 
costs  about  2C/byte  and  that's  only  in  1 
Megabyte  chunks."  In  fact  it's  the  relative 
modest  capacity  of  the  32K  board  that  makes 
it  so  interesting.  Users  need  not  buy  the  full 
64K  to  take  advantage  of  the  low  price  per  bit. 
Furthermore,  the  board  is  available  both  as  a 
kit  and  assembled  and  tested. 
Delivery  is  stock  to  two  weeks.  Pricing  is: 

•  32K  kit         $319 

•  32K  A&T      $359 

•  64K  kit         $645 

•  64K  A&T      $695 

8"  Disk  Drives 

Shugart  compatible  Memorex  550's  are  in 

stock. 

Single  and  double  density  compatible,  330K 

bytes  capacity  with  oiir  controller  or  use  your 

own. 

Either  way $456 

#  Protoboard  universal  wire-wrap  board 
for  developing  custom  circuitry.  Room  for 
three  regulators.  Accepts  any  size  DIP 
socket. 

Blank  PC       $  25.00 


Pascal/Z  Ready 

The  first  Pascal  Compiler  for  the  Z80,  and  the 
fastest  Z80  Pascal  ever  is  now  ready.  Over 
one  year  in  development,  Ithaca  Audio  was 
obviously  pleased  with  the  results.  "We  really 
have  outperformed  them"  states  Jeff 
Moskow,  Director  of  Software  Engineering, 
beaming  over  the  recently  released  bench- 
marks, in  which  Pascal/Z  averaged  better 
than  five  times  the  speed  of  a  recent  P-code 
implementation. 

"Pseudo-code  means  a  vendor  only  has  to 
supply  one  compiler  to  lots  of  people  using 
lots  of  different  machines,  and  that  makes  his 
life  very  easy,  but  it  also  means  users'  pro- 
grams execute  significantly  slower.  There- 
fore, we  chose  to  write  a  native  compiler  that 
delivers  fast  re-entrant  ROMable  code,  with 
no  need  for  an  intermediate  language  and 
interpreter.  That's  where  our  speed  comes 
from."  As  a  matter  of  fact,  Pascal/Z  is  often 
twenty  times  as  fast  as  UCSD's  implementa- 
tion and  may  well  be  faster  than  dedicated 
Pascal  machines  such  as  the  recently 
announced  Western  Digital  Pascal  Micro- 
engine.™  Unlike  the  Microengine,  Pascal/Z 
does  not  require  any  new  special  CPU 
hardware  and  has  the  added  benefit  of  com- 
patibility with  existing  Z80  software. 

Operational  requirements  of  Pascal/Z  are 
the  Ithaca  Audio  K2  Operating  system  and 
48K  of  memory  during  compiles.  The  output 
is  standard  Z80  Macrocode  which  is  linked 
and  run  through  the  Ithaca  Audio  Macro- 
assembler. Binary  files  may  be  as  small  as 
2.5K,  or  even  less  if  the  full  library  is  not  used. 
The  compiler.  Including  the  Macroassembler, 
is  available  on  an  8"  K2  floppy  disk.  Price 
including  full  documentation  is  $175.00.  The 
Macroassembler  is  available  separately  for 
$50.00.  Delivery  is  from  stock. 

IMore  Software: 

For  those  that  don't  require  the  speed  of  a 
compiler  like  Pascal/Z,  Ithaca  Audio  also 
offers  the  convenience  of  BASIC.  BASIC/Z, 
an  extended  version  of  TDL's  Super  Basic, 
runs  in  slightly  over  1 2K  and  Is  supplied  on  an 
8"  K2  disk  for  $75.00. 

SAVE  Even  More  - 

When  you  buy  your  software  as  a  package 
K2  and  Pascal/Z  $225 

SAVE  $25 
K2,  Pascal/Z  and  Basic/Z  $275 

SAVE  $50 


HOW  TO  ORDER 

Send  check  or  money  order,  include  S2.00  shipping  per  order. 
N.Y.S.  Residents  include  tax. 

For  technical  assistance  call  or  write  to: 


ITHACA 
AUDIO 


P.O.  Box  91 

Ithaca,  New  York  14850 

Phone:  607/257-0190 


BYTE  August  1979        229 


CASSETTE  AND  FLOPPY 
DISC  LADELS. 


1 

1        1    ;      STANDAHO  CASSETTE 

) 

Avarvfsaso 

Avery  offers  a  complete  line  of  labels  for 
cassettes  and  floppy  discs — all  with  re- 
movable adhesive.  Including  these  stan- 
dard sizes: 

Cassette  Label  (1%"  x  3V2")  #5250 
Floppy  Disc  Label  (1%"  x  51/2")  #5252 
Write  for  more  information  and  free 
samples  to: 

Avery  Label 

777  East  Foothill  Blvd. 

Azusa.CA  91702 

Avery  Label 

An  Avery  International  Company 


Circle  20  on  inquiry  card. 


"CRT   INTERFACES" 
black  '  white/colon 

Monltort  •  Combination  Rcvr/monitor  sett 
•  Modulator  icit*  *  B-W  Camerat  •  Color 
Cameras  *  Audio  Subcarrier  kits  *  Parts 


WRITE  or  PHONE  lor  DETAILS  &  PRICING. 


DIAL:   402-9S7-377II 


Dealers  welcomed.  Well  established  program. 


-jft- 


fA^, 


'3-B       ATV  Research    Si'"?..£!?'- 
^31 


Broadway 


NE.  63731 


Circle  19  on  inquiry  card. 


GLARE  FILTER 

HIGH  CONTRAST 

SHARP  RESOLUTION 

MICRO-POROUS  OPTICAL  FILTER 

FOR  HOME  COMPUTER  CRT'S 


With  Filler 


TRS80 

16.95 

PET 

16.95 

ADM3A 

16.95 

Soroc  ID  120 

16.95 

Haielline 

Southwest  Tech. 

16.95 

14001500 

16.95 

Micro-Term 

Perkin  Elmer 

16.95 

ActV 

16.95 

Easily  Installed  •  Instructions  Included 

For  information  on  other  models 

dial  (415)  456-8909 

SUN-FLEX  COMPANY,  INC. 

3020  Kerner  Blvd.  •  San  Rafael,  CA  94901 
Clteck/money  order  VIsa/Mastercharge 


< 


L 


THC 

RECREATIONAL 
PROGRAMMER 


) 


QUALITY    SOFTWARE! 

Tl  &  HP   Programmables 
BASIC  lor  most   compulers 


LU 
Q. 


GAMES '  ALGORITHMS  -  PUZZLES 
STOCK    ANALYSIS-  AND   MORE! 

OVER  30   PAGES   BIMONTHLY! 

ANNUAL   SUBSCRIPTION    ONLY; 
S12  within  USA  &   APO/FPO'S 

$24  Foreign    by  AIRMAIL 
Single  Issue  tor    $3   IncI    P&H 


VISA  and  MASTERCHARGE    OKI 
CALL   (616)343-3546  NOW  I 
Box  2571    Kalamazoo  Ml   49003 


HAZELTINE 
1400 

only 

$649.95! 

•  Verbatim  Mini  Diskettes    .  .  . 

.  .  .  $3.70  each  (boxes  of  10) 

•  Intertube  .  .  $784.00 

•  TRS-80  16K  Levelll 
Expansion  Kit $89.95 

•  Centronics  779  tractor  .... 

$1050.00 

•  Horizon  II  ass. .  .  .$1999.00 


Mail       TORA  SYSTEM  INC. 
Order       29-02  23rd  Avenue 
°"'y-        Astoria  NY  11105 
(212)932-3533 


AIRCRAFT  SIMULATOR 
FOR  APPLE  II 


PROGRAIMMERS 
SOFTWARE  EXCHANGE 

Three  versions  on  cassette  for  $19.95 

1 .  Presents  the  pilot  with  a  flying  situation 
which  must  be  successfully  completed  to 
avoid  a  crash. 

2.  Presents  a  simulated  instrument  panel  during 
an  IFR  flight  for  prolonged  practice. 

3.  Provides  machine  code  for  building  flight 
problems  and  displaying  them  on  the  screen. 

_    _    _,      Satisfaction  guaranteed! 
P.O.BOX199  (501)843-6037 

CABOT,  ARKANSAS  72023 


iiiji-Sfrji 


SINGLE  BOARD  COMPUTER 
$99.50* 

with  6800  MPU,  6850  serial  I/O.  2 
6820  parallel  I/O  (32  lines),  512  RAM, 
socket  for  2708,  2716,  EROM.  Inter- 
face modules  for  industrial  control, 
data  acquisition,  lab  instrumentation, 
on  44  pin  4'/i"x6y2"  RGB's.  RAM, 
ROM,  CMOS  RAM/battery,  A/D,  D/A, 
Driver/Sensor,  Serial  I/O,  Parallel 
I/O,  Counter/Timer,  IEEE  488  GPIB, 
floppy  controller 
•OEM  (500  piece)  price 


iH»""'l  Corp. 
902  N.  9th  Street 
Lafayette,  IN  47904 
Phone  (317)  742-6802 


Circle  389  on  inquiry  card. 


♦  APPLE) 

SUPER  SALE 

16K  Apple  II        $1019.95 

Disl<  with 

Controller $529.95 

Apple  Soft  Cards . . .  $159.95 

Carrying  Case $29.95 

Super  IVIod $29.95 

Printers— call  for  price 

UCATAN  CORP. 

P.O.  Box  1000 

DestIn,  Fla.  32541 

904-837-2022 
Credit  Cards  Accepted    j 


L 


Circle  375  on  inquiry  card. 


SOFTWARE 

for  TRS-80  &  North  Star  Z80 

all  programs  written  in 

Z80  assembler 

WORD  PROCESSOR   $1 25 

Superior  to  the  Electric  Pencil  at  half  the  price. 
Gives  total  freedom  of  layout.  Auto  line  justi- 
fication, underlining,  centering,  lines  pacing, 
pagination,  re-pagination,  etc.  Works  with  any 
printer. 

804B  CROSS  ASSEMBLER  S95 

Assembles  programs  for  8048,  8041.  8035 
series  at  1 1 00  lines/min,  INTEL  mneumonics  & 
error  codes,  multiple  source  files,  symbol  re- 
ference count,  format  control. 

TEXT  EDITOR  S75 

UNIX^"-style  editor  with  global  search  S.  re- 
place, pattern  matching,  reads  S.  writes  partial 
files,  change,  move.  copy,  append,  delete,  print, 
etc. 

UNIX*"  is  a  trgdemark  of  Bell  Labs 
Send  SI  for  specifications. 

$3  for  documentation 
Dealer  discounts  available 

SOFTWARE  INGENUITY 

P.O.  Box  1964,  Eugana,  OR  97401 


Circle  356  on  inquiry  card. 


Circle  315  on  inquiry  card. 


Circle  333  on  inquiry  card. 


m^m  > 


Computer 
Boards 


..  HOBBY  WORLD® 

C>ILL  TOLL  FREE:  (800)  423-5387 
CA,  HI,  AK:  (213)  886-9200 

Your  No.l  Source  for  Computer  Electronics 


4  Cnnipuirr  S>\lr>n« 


lA^llhdi 


Audio 


SlOO  Bus 


SSM  =  Solid  SIJI 
SDS^SD  Svslems 
SPL  =  S|wechUb 
HUH  =  HUH  Elfclrenics 
MH  =  Mountain  Hjrdikjrr 
j&i  =ds»tinbled  A  IrMrd 


Cat  No.  M(r/Model  Description 
-  ---  ' 16K  STATIC  RAM  MODULE 


1601A  CCSMXVI 
1601B  CCSMXVI 
1602A  CCS-MXVI 
1602B  CCSMXVI 
1603      CCS-MXVI 
CCSPTl 
CCSPT2 
CCS-PT3 
SSM-PB1 
SSMT1 
SSM-MB7 
SSM-MB7 
SSM-MB7 
SSM-MB3 
SSM-MB3 
SSM-MB9 
SSM-MB9 
SSM-0B1 
SSM-0B1 
SSM-OB1 
SSM-102 
SSM-I02 
SSM-I02 
SSMSB1 
SSM-SB1 
SSMSB1 
SSMMT1 
SSM-I04 
SSMI04 
SSM-104 
SSM-CB1 
SSM-CB1 
SSM-CB1 
SSM-VB1B 
SSM-VB1B 
SSM-VB1B 
SSM'MB6B 


1600 
1604 
1609 
1440 
1442 
1405 
1406 
1407 
142S 
1426 
1436 
1437 
1429 
1430 
1431 
1414 
1415 
1416 
1408 
1409 
1410 
1432 
1411 
1412 
1413 
1403 
1441 
1404 
1417 
1418 
1419 
1400 
1401 
1402 
1433 
1434 
1435 
1438 
1439 
1420 
1422 
1424 
1324 
1325 
1322 
1323 
1337 


1509 

1510 

1511 

1513 

1512 

1514 

1500 

1501 

1505 

1506 

1518 

1520 

1516 

1S17-0 

1S17-16K 

1517-32K 

1517-48K 

1517-64K 

APPLE  BUS 

1607  CCS 
1606         CCS 

1608  CCS 
1519         SPL 


._..  _ _  450ns  kit 

as  above,  200ns  kit 

as  above,  450ns  a&l 

as  above,  200ns  a&t 

as  above,  bareboard 

WIREWliAP  PROTOTYPING  BOARD 

SOLDERTAIL  PROTOTYPING  BOARD 

ETCH  PROTOTYPING  BOARD 

4K/BK  EPROM  BOARD 

TERMINATOR  BOARD 

16K  STATIC  RAM  BOARD,  kit 

as  above,  a&t 

as  above,  bareboard 

2K/4K  ^PROM  BOARD,  kit 

as  above,  a&t 

4K  STATIC  PROM/RAM  BOARD,  kit 

as  above,  a&t  . .  -i^ 

VECTOR  JUMP/PROTOTYPING  CARD,  kit  $47 


Price 
$285 
i330 
$330 
$375 
i  27 
i  26 
$  26  , 
$  16 
S135 
»  29  , 
S329 
$383 
$  26 
I  54 
$108 
$  64 
$118 


as  above,  a&t 

as  above,  bareboard 

UNIVERSAL  I/O  BOARD,  kit 

as  above,  a&t 

as  above,  bareboard 

MUSIC  SYNTHESIZER,  kit 

as  above    J&l 

as  aljove.  bareboard 

15  SLOT  MOTHERBOARD,  bareboard 

2  PARALLEL  +    2  SERIAL  PORTS,  kit 

as  above,  a&l 

as  above,  bareboard 

e080A  C(>U  BOARD,  kit 

as  above,  bareboard 

as  above,  a&t 

VIDEO  INTERFACE  BOARD,  kit 

as  above,  a&t 

as  above,  bareboard 

8K  STAfiC  RAM  BOARD,  kit 


SSM-MB6B    as  above,  a&t 

SSM-MB6B    as  above,  bareboard        . .. 

SSM-MB8A    16K  2708  EPROM  BOARD,  kit 

SSM-MB8A    as  above,  a&t 

SSM-M88A    as  above,  bareboard 

SSM-VB2        VIDEO  BOARD,  kit 

SSMVB2        as  above    a&t 

SSM-MB4       STATIC  RAM  BOARD,  kit,  2MH2 

SSM-MB4      as  above,  a&l  . 

SSM-MB4       as  above,  bareboard 

WMC-EPM1  4K  EPROM  BOARD    bareboard 

WMC-EPM2  16/32K  EPROM  BOARD,  bareboard 

WMC-FPB1    FRONT  PANEL  BOARD,  bareboard 

WMCCPU1   8080A  CPU  BOARD,  bareboard 

WMC-FDCl   FLOPPY  DISK  COnYROLLER  BOARD, 

bareboard 
WMCMEM18K  STATIC  RAM  KIT,  bareboard 
WMC-MEM1  parts  only  for  above 
lA  2708/16  EPROM  BOARD,  bareboard 

lA  8K  STATIC  RAM,  bareboard 

lA  Z-80A  CPU  BOAlil),  bareboard 

lA  WIRE  WRAP  PROTOTYPING  BOARD 

HUHMPA     PET  &  APPLE  TO  S-100  ADAPTER,  kit 
HUH-MPA     as  above,  a&l 
MH  100,000  DAY  CLOCK,  a&t 

MH  INT^ROL 

SPL-20S  32  WORD  SPEECHLAB,  a&t 

SPL-50S  64  WORD  SPEECHLAB,  a&t 

SDS         VERSAFLOPPY,  kit 

SDS  EXPANDORAM,  kit 

SDS        as  above,  with  16K  RAM 

SOS         as  above,  witb  32K  RAM 

SDS         as  above,  with  48K  RAM 

SDS         as  above,  with  64K  RAM 


SOLDERTAIL  PROTOTYPING  BOARD 
WIREWRAP  PROTOTYPING  BOARD 
ETCH  PROTOTYPING  BOARD 
32  WORD  SPEECHLAB 


$  74 
$  26 
S  48 
S  93  I 
$  26 
$145  I 
5212  I 
S   35 
$  39  I 
$139  I 
S193  I 
$  26 
$119  I 
$  34  I 
$164  1 

$129  I 
$176  I 
$  26 
$129  I 
$183 
$  26 
i  88 
$118 
$  26 
$139 
$199 
$  89 
$142 
$  26 
$  28 
$  28 
$  48 
$  28  I 

$  48 

$  28 

$  80 

$  28 

$  28 

$  32 

$  24 

$199 

$279 

$219 

$329 

$189 

$299 

$159  I 

$185 

$249 

$330 

$425 

$500 


$  21 
$  21 

$    : 

$189 


HUH  8100 
|TRS-80bS100  Bus/ldaptorl 

•  6  Slot  motherboard 

Includes     options    such     as 

serial     RS232/20nia      I/O, 

parallel    input    and    output, 

space  for  4K  or  16K    R/SM, 

and    more.    Basic    unit    in- 
cludes   Bus     interlace     and 

connectors  only. 
Cat  No.  1460        Bus  interface  kit 
Cat  No.  1461        Ram  Support  kit 
Cat  No.   1462        I/O  Option  kit 
Cat  No.  1463        5  connectors  4- guides 
Cat  No.  1464        Complete  Package 
Cat  No.  1465        Bus  Interface  a&t 
Cat  No.  1466        Complete  Pkg.  a&l 


$167 
$  42 
$  77 
$  42 

$266 
$220 
$340 


tx^^^ 


o^ 


BASE  MOUNTING  CLAMP 
Cat  NOj  PV3n 

$P<9S        $10.00 


HORIZONTAL  VISE  HEAD 
Cat  No.  PV304 

$12.00 


$;iW 


IC  Sockets 

Penny-A-Pin 

I  •   Texas  Instruments 
1  •   Solder  tail 
•  Package  quantities  only  \ 

Order  by  Cat  No.  1117  and 

pins 

8  pin  20  for  $1.60 

14  pin  10  for  $1.40 

16  pin  10  for  $1.60 

18  pin  8  for  $1.44 

20  pin  8  for  $1.60 

22  pin  8  for  $1.76 

24  pin  3  for  .72 

28  pin  3  for  .84 

40  pin  2  for  .80 


TRS80 

I  Level  III  Basic 

Loads  on  lop  of  Level  II, 
turns  your  TRS-BO  into  a 
powerful  system.  Gives  disk 
commands  without  the 
DOS.  Solves  loading  prob- 
lems, cures  keyboard 
bounce.  Software  cassette, 
with  the  power  of  a  hard' 
ware  modification.  Guaran- 
teed satisfaction. 
Cat  No.   1332     S49.00 

$49 

Moltage 
Regulators 

I  Type     Equal  to       CASE  PRICE  I 


I  7S05K 
I7812K 
I7E15K 
I7818K 
|7805T 
|7812T 
I7815T 
I7818T 
1 7905 K 
|7912K 
I 7905T 
I7912T 
I7915T 


LM340K 

LM340K 

LM340K 

LM340K 

LM340T 

LM340T 

LM340T 

LM34oT 

LM320K- 

LM430K. 

LM320T-: 

LM320T- 

LM320T- 


+  5  TO- 
+  12  TO. 
+  15  TO 
+  18  TO- 
+  5  TO- 
+  12  TO 
+  15  TO 
H8  TO 
5       TO 


3  $1.40 1 
3  $1.40 1 
3  $1.40 1 
3  $1.40 1 
220  .95 1 
220  .95 1 
220 
220  .95 1 
3  $1.75 1 
3  $1.75 1 
220  $1.25  I 
220  $1.25  I 
220  $1.25  I 


19355  Business  Center  Dr.  6B8 
NorthridgeG4  91324 


WIDE  OPENING 
VISE  HEAD 
Cal  No.  PV366 


$j}MS    $11 


STANDARD  BASE 
Cat  No.  PV300 
$>^9      $10.50 


STANDARD  VISE  HEAD 
Cal  No.  PV303 
$J»<^  $11.25 


PC  BOARD  VISES      _ 

Cat  No.  PV315  Standard,    $1>$8      $14.75 

Cat  No.  PV315  S-100    S^iiujS 


TRS232 

Printer  Serial 
Interface  $« 

Software  driven  RS232  out- 
put port.  Interface  printers 
such  as  DIABLO,  TELE- 
TYPE, Tl  SILENT,  etc. 
Easy  to  install,  with  inst- 
ructions. 
Cat  No.  1199     S42.00 


TTL's 


Order  by 
7400 


16K  Memory 
Add-On 


$95 


•  For  TR5-80,  Apple  II 
Guaranteed  memory  expan- 
sion! Includes  everything 
you  need... chips,  jumpers, 
and  step  by  step  instruc- 
tions. No  special  tools,  no 
soldering! 
Cal  No.     1156 


"LIFT-IT" 

PC  Duplicating  Kit 

$25 

Copy  PC  patterns  from 
magazines  t^uicklv  and  eas- 
ily1  No  additional  materials 
required,  no  camera  needed. 
With  10x12"  sheet  of  film. 
We  stock  all  refills.  With 
slep-by-step  instructions. 
Cat  No.  1203     $25    

LEEDEX 

12"  Video /Honitor 

$139 

•   TRS-80  compatible 

(no  interfacing  required) 

•  High  resolution 

Accepts  standard  composite 
video  input,  no  RF  modu- 
lator necessary.  Stable  & 
sharp.  Ligfitweight.  Ship- 
ping $6  gnd,  $12  air,  USA 
only. 
Cat  No.  1204     $139.00 


Pay  by  check,  COD,  Visa, 
or  Mastercharge.  Order  by 
phone  or  mail.  Please  in- 
clude phone  number  and 
magazine  issue  you  are  or- 
dering  from.    USA:    add   $2 


7402 
7403 
7404 
7405 
7406 
7407 
7408 
7409 
7410 
7411 
7412 
7413 
7414 
7416 
7417 
7420 
7423 
7425 
7426 
7427 
7430 
7432 
7437 
7438 
7440 
7441 
7442 
7443 
7444 
7445 
7446 
7447 
7450 
7451 
7453 
7454 
7470 
7472 
7473 
7474 
7475 
7476 
7481 
7483 
7485 
7486 
7489 


.15 
.20 
.20 
.20 
.20 
.30 
.30 
.20 
.20 
.20 
.25 
.25 
.35 
.60 
.25 
.25 
.20 
.25 
.25 
.25 
.25 
.25 
.25 
■?5 

./3 

.20 
.70 
.50 
.50 
.25 
.75 
.75 
.65 
.20 
.20 
.20 
.20 
.30 
.25 
.35 
.35 
.45 
.35 

1.20 
.60 
.75 
.35 

1.75 


type  number 
7490. 
7491 
7492 
7493 
7495 
74% 
74107 
74109 
74121 
74122 

74123  .„ 
74126  40 
74132  65 
74141  180 
74145   65 

74150  90 

74151  60 

74153  60 

74154  1.00 

74155  .70 
74157   60 

74160  85 

74161  .75 
74163   .75 

74165  .95 

74166  1.25 
74170  1.60 

74173  1.10 

74174  .85 
74175 
74176 
74177 
74180 


74181  1.75 

74190  1.25 

74191  .95 


74192 
74193 
74194 
74195 


.75 
.75 
.90 
.70 


74198  1 .49 

74221  .85 

74251  .80 

74273  1.0O 


74365 
74366 
74367 
74368 


.65 
.65 
.65 
.65 


Send  for 

FREE  CAT>1LOG 

Featuring 

The  best  selection  of  computer 
accessories  add-ons,  factory 
fresh  IC's,  led's,  semi's,  soft- 
ware, PC  aids,  prototyping 
aids,  books,  test  equipment, 
and  more!  Always  updated! 
Dozens  of  new  products  every 


for  shipping/handiing,  $3 
for  air.  Foreign:  add  $3  for 
surface,  $6  lor  air.  COD's 
also  add  $1.  Guaranteed 
satisfaction  for  120  days  or 
your  money  back! 


Circle  170  on  inquiry  card. 


BYTE  August  1979         231 


IN    CALIFORNIA 

wmm  %mm 
i/^M  immm 

Mainframes 

Personal  Computers 

SlOO  Bus  Boards 

Systems 

Software 

Peripherals 

Supplies 

Books 
Magazines 

701  MacArthur  Blvd 
SAN  LEANDRO,  CA 
(415)  569-4174 


Circle  70  on  inquiry  card. 


Come  Help  Us 
Celebrate  The  Child 

St.  Jude  Children's  Research 
Hospital  continues  its  seorch  for 
life-soving  l-(nowledge  about 
catastrophic  childhood  disease. 
And  this  seorch  continues 
because  people  care.  There's 
no  ctiorge  to  potients  or  their 
fanniliespnce  odmifted  to  its 
research  studies  by  physician 
referral.  The  cost  of  drugs, 
equipment,  and  reseorch 
programs  is  met  primarily 
by  public  contributions.  Help 
us  celebrate  the  child  by  send- 
ing your  tax-deductible  check 
or  request  for  furthier  informa- 
tion to  St.  Jude  Children's 
-^  —  Research  Hospital, 
►■  ^  ,  539  Lane  Ave., 
■kJ  Memphis,  TN  08105. 


ROBOT 


ATTENTION  FRANKENSTEINS 

1 2-VOLT  DC.  1 7-RPM, 

REVERSIBLE  GEARMOTORS 

500-ma  NO  LOAD. 

750-ma  FULL  LOAD 

11  INCH-POUNDS  TORQUE 

2  MOTORS  SEPARATELY  DRIV- 
ING B-INCH  DIAMETER  WHEELS 
WILL  DRIVE  A  10C3-LB  ROBOT. 
$18.00*  EACH  PLUS  $1.50  PER 
MOTOR  FOR  SHIPPING  AND 
HANDLING  IN  USA.  CHECK  OR 
MONEY  ORDER  PLEASE.  CALIFOR- 
NIA RESIDENTS  ADD  B%  TAX. 

GLEDHILL  ELECTRONICS 

P.O.  BOX  1644 
MARYSVILLE.  CA  95901 

•THIS  IS  S5.50  BHjDW  MANUFACTURER'S  UST! 


FOR  TRS-80™  OWNERS 

Programming  Amateur's  Letter 

THE  "DO-IT-YOURSELF" 
SOFTWARE  NEWSLETTER 

PUBLISHED  MONTHLY 

LEVEL  II  FROM  THE  BOHOM  UP 

BUSINESS 

PERSONAL 

HOBBY 

There's  Nothing  Else  Like  It! 

$24  per  year ...  or  write  for  FREE  DETAILS 

THE  MAIL  MART 

Dept  BA.  Box  1 1 1 02.  San  Francisco,  CA  941 01 


Circle  199  on  Inquiry  card. 


uuss 

ll^e  Jn<kpcn<ienf 
A^eu;fileHer  of 
Heat^  Co.  Computers 

3l5-1>?enn$^l  vania  Ane.  ,S.E. 
U>as^tn^l;on,P.C.  2d003 

^  8.30  ^01-12   issxifts 
f  15.60  ^or  2H    issufce 

(overse  afi ,  $  10. 50  / 12^ 

i  20/2^ 

"pai/ablft  (7)1  a  U.S.  ba»\k) 


circle  32  on  Inquiry  card. 


ALIGNMENT 
ONLY 

*35 


SHUGART 
E 
FLOPPY 
A 

DISC 
R 


^80 

INCLUDES  MISC.  PARTS 

Jl^.  COMPUTER 


IBLj 


8746  Wurzbaoh  /  Suite  207 
San  Antonio  TX  78240  /  (512)  696-0907 


MICRO  FOOTBALL 

(TRSSO  16K  Level  II  Cassette) 

Great  graphics  and  player  action! 
You  can  run,  pass,  draw,  punt, 
blitz  or  kick  a  field  goal. 
Touchdown,  safety,  interception, 
fumble  are  all  included. 

You  can  call  an  offense,  your  op- 
ponent calls  a  defense!  Instruc- 
tions are  included  to  'fine  tune' 
odds  if  you  wish. 

(Send  $12.95  to:) 

GLA  Enterprises 

P.O.  Box  125 
Reistertown,  MD  21136 

(Maryland  residents  include  sales  tax] 


Circle  145  on  inquiry  card. 


Special  Sale! 

DATATERMINAL       fSAO 
PRINTER  099 

We  Buy-Seli-Tyade  all  brands  & 
models  of  Data  Processing 
Equipment. 


USB-330 10/30  CPS  Impact 

Printing  Tractor  Feed  132  Print  Positions 
lOJ<8yPad 
Nearly  a  million  dollars  In  Inventory 

•  •      Phorte  for  Price  Quotes 

.;••;• -214/357-5725 

'tKALBRO 

computEr  brokers 

Formefly  U  S  Brol<ers  Co  .  A  Division  of  Kalbro  Corp 

2fi36  WALNUT  HILL  LANE,  SUITE  347 

DALLAS,  TEXAS   7S229 

•••••••••••••• 


Circle  377  on  inquiry  card. 


get  your 
hands  on . . . 

Hands  on  microprocessor  short  course  with 
FREE  take  home  microcomputer  included  in 
the  $449  tuition. 

5  day^Pand  interfacing  workstiops 
Oct.  15-19  Washington,  DC 

Oct.  22-26  Lafayette,  IN 

Dec.  3-7  Lafayette,  IN 

NEW  Advanced  programming  work- 
shop 
Dec.  10-14  Lafayette,  IN 

Learn  mtcreprocaiaart  Aral  hand  from  the 
ortglnal  handa  on  people. 

For  more  infomtation  call  Jerilyn  Williams. 
(31 7)  742-6802  or  write  WIntek  Corp..  902  North 
9th  Street.  Ufayette,  IN  47904 

■  6800  Hardware/Software 

■  Custom  Hardware/Software 

■  In-house  short  courses 


iriNTKK 


Corp. 


circle  146  on  inquiry  card. 


Circle  390  on  inquiry  card. 


computer 
products,   inc. 


11542-1  KNOTT  STREET 
GARDEN  GROVE.  CALIFORNIA  92641 

(714)891-2663 


MICROBYTEZ80/I-O 


•  A  complete  single  board  Z80A 
CPU  and  serlal/paralle  I/O  system 

•  Fully  S-100  Bus  compatible, 
tMSAI.  ALTAIR 

•  Z80A  CPU  (4iMHz  version  of  the 

zeo) 

«  156  Instructions  —  superset  of 
and  upward  compatible  from  the 
8080's  76  Instructions 

•  Provision  for  up  to  4K  on  board 
monitor  program  using  1K(2708). 
2K  (2716),  4K  2732 

•  On  board  EPROM  can  be  hard- 
ware and/or  software  deselected 

•  2  MHz  or  4  MHz  operation  is 
switch  selectable 

•  0  or  1  wait  state  for  all  cycles  is 
switch  selectable 

•  2  RS-232C  serial  ports  with  8251 
USARTs 

•  Serial  baud  rates  switch 
selectable 

•  24  programmable  parallel  I/O 
lines  (uses  8255) 


•  Gold  Contacts  for  higher  relia- 
bility 

'  Power  requirements:  -t-6V  ® 
600mA.  -f  16V,  @  66mA,  -  16V 
@  100mA 

•  Operating  temperature  0*-55*C 

•  Will  operate  with  or  without 
IMSAI/ALTAIR  front  panel 

•  Low  power  shotlky  trl-state  buf- 
fers on  all  address  and  data  lines 

>  Fully  warranted  for120  days  from 
date  of  shipment 


$325.'" 


IMSAICONN. 

100PIN-SOLDERTAIL 
GOLD  CONTACTS 

SS.""  each  or  10/2.60  each 


8251 

PROGRAM  MABLE/U-ART 
TESTED®  4  MHZ 

SS.""  each 


TRS  ■  80 


Floppy  disk  drive  with 
cabinet  &  pwr.  supply 
compatible  witti  Radio 
Stiack  interface.  Ass- 
embled &  tested  witti 
1  yr.  warranty  on 
parts  &  labor. 

MIg,  by  Lobo  Drive 


$385 


interface  Cable  Available 


SPECIAL 

.1  @  12  VOLTS 
CERAMIC  CAP 

10<|;each 
or 

lOO/SQ."" 


NIICROBVTE  16K  STATIC  RAM  BOARD 


>  Fully  S100  Bus  Compatible, 
IMSAI.  SOL,  ALTAIR,  ALPHA 
MICRO 

Uses  National's  Low  Power  5257 
4K  X  1  Static  Rams 
2  MHz  or  4  MHz  operation 
On  board  single  5  amp  regulator 
Thermally  designed  heat  slntt 
(board  operating  temperature  0* 
-  70 "CI 

Inputs  fully  low  power  Shottky 
Schmitt  Trigger  buffered  on  all 
address  anddata  lines 
Phantom  is  jumper  selectable  to 
pin  67 

Each  4K  bank  addressable  to  any 
4K  slot  with  in  a  64K  boundary. 
4K  hardware  or  software  select- 
able 

Selectable  port  address 
4K  banks  can  be  selected  or  dis- 
abled on  power  on  clear  or  reset 


Will  operate  with  or  without  front 
panel 
'  Compatible  with  ALPHA  MICRO, 
with  extended  memory  manage- 
ment for  selection  beyond  64K 
No  DMA  restriction 
Low  power  consumption  1.3  amp 
Fully  warranted  for  1 20  days  from 
date  of  shipment 
Extended   addressing   up   to   1 
megabyte  of  addressable  ram 


450  NS  $320.°° 
300  NS  $340.°° 


M1CROBYTE32K  STATIC  RAM  BOARD 


Fully  S100  Bus  Compatible, 
IMSAI,  SOL,  ALTAIR.  ALPHA 
MICRO 

Uses  National's  Low  Power  5257 
4K  X  1  Static  Rams 
2  MHz  or  4  MHz  operation 
On  board  single  5  amp  regulator 
Thermally  designed  heat  sink 
(board  operating  temperature  0* 
-  70 'C) 

Inputs  fully  low  power  Shottky 
Schmitt  Trigger  buffered  on  all 
address  and  data  lines 
'  Phantom  is  jumper  selectable  to 
pin  67 

Each  4K  bank  addressable  to  any 
4K  slot  with  in  a  64K  boundary. 
4K  hardware  or  software  select- 
able 

One  on  board  8-blt  output  port 
enables  or  disables  the  32K  in  4K 
blocks 

Selectable  port  address 
4K  banks  can  be  selected  or  dis- 
abled on  power  on  clear  or  reset 


•  Will  operate  with  or  without  front 
panel 

*  Compatible  with  ALPHA  MICRO, 
with  extended  memory  manage- 
ment for  selection  beyond  64i< 

*  No  DMA  restriction 

»  Low  power  consumption  2.3  — 
2.5  amps 

•  Fully  warranted  for  120  days  from 
date  of  shipment. 

Extended   addressing   up   to   1 
megabyte  of  addressable  ram 


450  NS  $620.°° 
300  NS  $650.°° 


MICROBYTE  MOTHERBOARD 


•  Extra  wide  ground  plane 

•  Silk  screen  and  solder  mask 

•  Assembled  and  tested 


>  Active  Diode  termination 
'  Slot  for  IMSAI  front  panel 

>  Terminal   block  connection   for 
easy  hook-up 

9slolkit    $70.°°A&T$100.''° 

20  slot  kit  $125.°°  A&T  $155.°" 

Bare  Board  9  slot  $30.°°  20  slot  $50.°° 


MICROBYTE  DISK  CONTROLLER 

»  IBM  3740  Soft  Sectored 'Compat- 
ible 

»  Z80  or  8060  compatible  on  S-100 
Bus 

•  Single  density  runs  both  mini  and 

full  size  drives,  runs  CPM,  on 
Shugart,  PerscI,  Memorex  etc. 

•  Selectable  port/address 

•  On  board  2708/2716  for  bootstrap 
or  monitor  program 

•  No  hardware  jumpers,  uses  plug 
in  modules  for  different  drives 

«  Uses  17718-01  controller  chip 

•  Assembled  and  tested 
>   Specify  disk  drive  used  when 

ordering  by  mall 


$225.°' 


SHUGART 

801-Disk  Drive 

WITH  CABINET  &  POWER  SUPPLY 

ASSEMBLED  &  TESTED 

1  YR  PARTS  &  LABOR 

MIg.  by  Lobo  Drive 

$585.°° 

Dual  Cabinet  &  Drives  Available 


2708's 

LOW  POWER 
450  NS. 

$8."  each 
8  for  $66.°° 


SHUGART 

SA400 


DISK  DRIVE  INCLUDES  CABINET,  NO  PWR 

SUPPLY,  CUTOUTS  FOR  SWITCH,  FUSE,  & 

INTERFACE  CABLE 

Mfg.  by  Loho  Drive 


2716 

5  VOLT  ONLY 

LOW  POWER 

450  ns 


$325, 


00 


$40. 


00 


SCANBE/RN 

SOCKETS  —  LO  PROFILE 

(tin) 
1-24      25-99  100-499   500  up 


REGULATORS 


14  PIN 

.16 

.15 

.14 

.12 

16  PIN 

.17 

.16 

.15 

.14 

18  PIN 

.20 

.19 

.18 

.16 

20  PIN 

.29 

.28 

.26 

.25 

24  PIN 

.34 

.32 

.30 

.28 

40  PIN 

.60 

.58 

.56 

.52 

320  T  6 
320  T- 12 
340  T5 
340  T- 12 
78H05 


1-9  10-49  SOUD 

1.15  1.05 
.90  .85 
.70  .65 
,70   .65 


1.25 
1.00 
.75 
.75 


6.00  5.70  5.40 


NEW  PRODUCTS 

8086  —  CPU  BOARD 

8088  —  CPU  BOARD 

Double  Density  Controller 

CALL  OR  WRITE 

FOR  DEALER  INFO 


CABLE 
ASSEMBLY 

for  8"  disk  drives 

(2)  50  PIN  CARD - 

EDGE  CONNECTORS 

ON      4tt.      RIBBON 

' CABLE 

$20.'"'ea. 

extra  conn.  $7.°°  ea. 


ORDERiNG  INFORIWATION: 

Name,  Address,  Phone 

Ship  by;  UPS  or  P.P. 

Shipping  Charge:  Add  $2.50  up  to 
5  lbs.,  all  excess  shipping 
charges  will  be  refunded.  Credit 

cards  will  be  charged  appropriate 
freight. 


TERMS: 

We  accept  cash,  check,   money 
orders,  Visa,  and  Master  Charge 
cards.  (U.S.  Funds  Only). 
COD's:  on  approval  only 
Open     Aoct's:     companies     may 
inquire  for  net  terms. 
Tax:  add  6%  for  Calif,  residents  only 


Circle  11  on  inquiry  card. 


BYTE  August  1979        233 


TRS-80  USERS 

Loweco  Computer  Introduces  3  Diskless 
TRS-80  Programs 

-  Telephone/ Address/Mailing  list  pro- 
gram -  sorts  by  name  or  zip  code. 
Retrieves  telephone  §  from  name  and  visa 
versa.  Access  time  is  under  2  seconds, 
over  100  listings,  Level  II  16K  -  $30.00 

-  Checkbook  program  -  hard  electronic 
copy,  easily  accessible.  170  listings.  Level 
II  16K  -  $30.00 

-  Mandalas  for  the  Cybernectic  Age  I  &  II 

-  amazing  graphic  programs,  better  than 
TV  -  lasts  hours  without  repeating  or  com- 
mercials. 2  sets  of  four  interweaving 
designs.  Level  I  or  II  4K  RAM  -  $30.00 

-  Introductory  offer  -  all  3  for  $7S.OO 

LOWECO  COMPUTOB 

1803  Rodney 

LOS  ANGELES  CA  90027 

213-660-7530 

6°/o  Tax  in  California  , 
Cashier  Check  Speeds  DeUvery 


Radio  /haeko.ALc» 

MICRO 

MANAGEMENT 

SYSTEMS 

Up  To  1 5%  Discount 
on 

TRS-80's 

MICRO-COMPUTER  SPECIALIST 

LARRY  OWENS 

COMPUTER  CENTER 


MINI  MALL 

DOWNTOWN  SHOPPING  CENTER 

CAIRO,  GEORGIA  31 728 

912-377-7190 


S-100  A/D 


•  s-100  Bus  Compatible  A/D 
Converter 

•  12  Bit  Accuracy 

•  16  Channel  Analog  Input 

•  Programmable  Gain  Amplifier 
with  Sample-and-Hold 

•  High  Quality  Commercial/ 
Industrial  Construction 

2  and  4  Channel,  12  Bit  D/A 
Boards  also  available. 

CALIFORNIA   DATA 
CORPORATION 

3475  Old  Coneio  Road,  Suite  CIO 
Newbury  Park,  California  91320 
(805)498-3651 


Circle  207  on  Inquiry  card. 


Circle  41  on  Inquiry  card. 


KIM  SOFTWARE 

9K  MICROSOFT  BASIC 
Includes: 

•  Over  55  Commands 

•  Full  String  Handling 

•  9  Digit  Precision 

•  Hypertape  Built-in 

•  70  Page  Manual 

SPECIAL 

INCLUDES  "DATA/SAVE" 

(added    commands    to    record 

both  programs  and  data!) 

KIM  CASSETTE  a  MANUAL 

$100.00  prepaid 

UPDATE  KIT  &  MANUAL  FOR  KIM  BASIC 

WITHOUT  MICROZ  FEATURES  .  .  .  $35.00 

MICRO-Z  COMPANY 

Box  2426 

Rolling  Hills,  CA  90274 


APPLE  :: 
RESET  KEY 
PROTECTOR 

FAST  RELIEF  lor  Ihe 
ACCIDENTAL  RESET  BLUES   ! 

*  Prevents  reset  when  reaching 
tor    =  and  return 

*  Allows  deliberate  usage 

*  Custom,  (precision  molded 
part     *  Easily  installed 

*  Original  equipment   look 

only  32.25  ■  incl.  ship.&hndl 

(calif,  res.  add  6  '   tax) 
send  check  or  mon.  order  to: 
pkC,  inc.   dept.B 
2003  Quail  St..  NB  CA  92660 


The  best  choice 
in  mainframes  ! 


•  SIOO  CARD  FRAME 

•  22  MHt  12"  CRT  MONITOR 

•  la  AMP  POWER  SUPPt-Y 

•  UPPER  &  LOWER  CASE 
ASCII  KEY  BOARDS 


•  AXIAL  BLOWER 

•  ASSEMBLED  &  TESTED 

•  READY  FOR  YOUR  CARDS 

•  S9S5.00 


VERYATTHACTIVEO  EM.  AUD 
OEAien  DISCOUNTS  AVAILABLE. 


•■■  INFINITE    INCORPORATEO 

Celdimm  Otir  llih  frar. 
B19  E,  STRAWDRIDGE,  MELBOURNE.  FL  32901  -  (305)  721  158B 


Circle  234  on  inquiry  card. 


Circle  299  on  Inquiry  card. 


Circle  174  on  inquiry  card. 


V 


;  B-\Ii's  New 

>    ^  Toll-W 

\   ^ubscriWi" 
\  W^A.T.S.\ine 

\8d<J>-^58-54d5 

To  further  iniprove  service  to 
our  customers  we  have  installed 

a  toll-free  WATS  line  in  tiur 
Peterborough,  New  HampsKire 
office.  If  you  would\ike  to  order 
a  subscription  to  BYTE,  or  if  you 
have  a  question  relateg  to  a  BYTE 
subscription,  yotraPte  invited  to\ 
call  (800)  258-3i48»between    \  ° 
8:30  AM  and  4:  JO  PM  Easterny 
Time.  This  appliesUo  ^lls  fron/    [ 
within  the  continental  WS  o^lyt  ^. 

o  We  thank  you  arid,  look 

^  lorward  to  serving  you.  ' 

'SLSUiJLSLSUiJULSLSiJiSULSiSJLSULSLSJD 


16K  RAMS  &  RAM  CONTROLLERS 

16k  X   1  DYNAMIC  RAM  MK4n6P3 

•  2D0  NSEC  ACCESS)375  NSEC  CYCLE  TIMES 

•  16  PIN  CERAMIC  DEVICEITTL  COMPATIBLE 

•  ALL  CHIPS  BUHNED  IN  8  125°C  AND  FULLY  TESTED, 
BOTH  DYNAMICALLY  AND  STATICALLY 

•  PRICE  (WITH  DATA  SHEETI: 

•  S68.00  IN  OTY  OF  BITHAT'S  SB.50  EACH 

DYNAMIC  MEMORY  CONTROLLER  MC3480L 

•  GENERATES  RASICAS  g  REFRESH  TIMING  FOR  16K 
TO  64K  BYTE  MEMORIES 

•  PRICE  WITH  DATA  SHEET);  « 13.95  EACH 

MEMORY  ADDRESS  MUX/COUNTER  MC3242AP 

•  MUX  ADDRESS  &  REFRESH  COUNTER  FOR  16K  TO 
.   64K  BYTE  MEMORIES 

•  PRICE  IWITH  DATA  SHEETI;  S  12.50  EACH 

QUANTITY  DISCOUNTS  AVAILABLE 
ALL  ORDERS  POSTPAID.  U.S.  FUNDS  ON  INTERNATIONAL 
ORDERS,  CHECK  OR  MONEY  ORDER.  VISAIBAIMC  ALSO  AC 
CEPTED.  SEND  ACCT.  NO.,  EXPIRATION  DATE,  &  INTERBANK 
NO.  WITH  SIGNED  ORDER.  CALIF.  RESIDENTS  PLEASE  ADD 
6%  SALES  TAX.  PHONE  ORDERS;  17141  633-4460. 

MEASUREMENT  SYSTEMS  &  CONTROLS,  INC. 

MEMORY  DEVICES  DIVISION 
867  NORTH  MAIN  ST.,  ORANGE,  CA  92668 


6800  MICROPROCESSOR  PARTS 

(Brand  New  Limited  Quantities) 

M6800  CPU $8.95 

M68S1   PIA $4.95 

M6810  RAM $4.95 

2708   EPROM  (8K) $9.95 

2716  EPROM  (16K).  .  .  .  $24.95 

Complete  6800  computer  board 
kit  w^lth  M6800,  M6821,  M6810, 
2708  EPROM,  p.c.  board,  and 
power  supply  ready  for  oper- 
ation on  115  VAC  with  full 
instructions  (with  2716  EPROM, 
add  $10.00) $49.95 


ODS  INC. 

P.O.  BOX  8346 

Oaithersburg,  MD  80760 


Circle  217  on  inquiry  card. 


Circle  286  on  inquiry  card. 


w^|adw\nced 
^/Products  ^^,.^^ 


STATICX  /RAM  BOARDS, 


THE  FIRST  TO  OFFER  PRIME  PRODUCTS  TO  THE  HOBBYIST 
AT  FAIR  PRICES  NOW  LOWERS  PRICES  EVEN  FURTHER! 

1.  Proven  QlJ3lity   Factory  tested  products  onlv,  no  retests 
or  fallouts.  Guaranteed  money  back.  We  stand  behind  our  products. 

1979  CATALOG  NOW  AVAILABLE. 

Sena  SI  .00  for  your  copy  of  Ihe  most  complete  catalog  of  computer  products.  A  must 
for  ttie  serious  computer  user. 

MICROPROCESSORS     STATIC  HAM  HEAOQUARTEHS     SOCKETS 


S-100  32K(uses2114)  >**'''%*•/ 

ASSEMBLED  Kit       ''/'A*  P" 

450n5.      599.00  450ns.      539.95 

250ns.      699.95  250ns.      599.95 

Bare  Board  49.95 
Bare  Board  w/all  parts  less  mem.  99.95 


S-1 00 1  eK  (uses  2 1 1 4)  KIT  (exp.  lo  32K) 


ASSEfulBLED  450ns       279.00 

450ns.      325.00  250ns.      299  00 

250ns.     375.00 

Bare  Board  49.95 

LOGOS  I SK 

ASSEIVIBLED 

450  ns.      169.95     KIT  450ns.      125.95 

250ns.      189.95  250ns.      149.96 

Bare  PC  Board  w/Dala  $21.95 
Now  over  1  year  successful  field  experience 
"Special  Offer-  Buy  (4)  SK  450ns.  Kits  S1 1 7.00 


L^jS 


FLOPPY  DISK  DRIVES 


1.  VISTA  V-80fvllNIDISK 
FOR  TRS-80 

*  23%  f^ore  Storage 
Capaclty-40Tracks  

*  Faster  Drive  -  ^      "\ 
Up  to  8  Times  Faster      f  aoa  oo  1 

2  Drive  Cable  Add  S29.95  l"—'-"~/ 

4  Drive  Cable  Add  S39.95    ^ 

2.VISTA  V-200  IVIINI-FLOPPY  SYSTEM 

*  204K  Byte  Capacity  *  w/CPM,  Basic"E" 

*  One  Single  Sided,  ^-■— -s. 
Double  Density  Drive       /  V-200  \ 

*  One  Double  Density       y99S.00y 
Controller  w/Case  S  P  .'^  x^      ^ 

Add  to  your  EXIDY, 
HORIZON,  etc. 

3.  VISTA  V-1000  FLOPPY  DISK  SYSTEM 

*  g)  Sfiugart  800-R  8"  Floppy  Disks 

*  Controller  Card.  Cable.     -^"""^ 
Case  8  PS.  /V-1000\ 

*  CPM  &  Basic  "E",  H  699.00/ 
Instructions  &  Manual       ^      -^ 

4.  MPI  B51-5y-"._40tracl(S  279.00 

5.  Shugart  SA400-5y<",  35  tracks. . . .  295.00 

6.  Siemens/GSI  FDD1 00-8  8" 375.00 

7.  Stiugart  800/801 R  8" 495.00 

8.  PERSCI  Model  277  Dual 11 96.00 


EXPANDORAM  MEMORY  KITS 

*  Bank  Selectable  ♦  Uses  41 15  or  41 16 
200  ns. 

*  Write  Protect        *  Power  8VDC,  ±1 6VDC 

*  Phantom  •  Lowest  Cost/Bit 
Expando32Kit(41 15)  Expando64Kit(41 1 6) 

8I<  $179.00  16K   $248.95 

16K   $229.00  32K    $389.00 

24K   $299.00  48K    $469.00 

32K   $349.00  64K    $565.00 


IMS  STATIC  RAM  BOARDS     ^pP 

•  Memory  Mapping    *  Low  Power  ft* 

*  Ptiantom  *  Assembled  &  tested 
Recommended  by  Alptiamicrosystems 

250  ns^  ^50  ns. 

8K  Static  $209.00  $189.66 

16K  Static  $449.00  $399.00 

32K  Static  $799.00  $699.00 


ANADEX  PRINTER 

Model  DP-8000  compact,  impact,  parallel  or 
serial.  Sprocket  feed.  80  cols. 
84  lines/min.,  bi-directional. 
New  only $895.00 


VERBATIM™  DISKETTES    jytl 

♦  5V."  Minidiskettes  ♦  ot*^o 
Softsector,  lOSector,  16Sector'^-<0\.^ 
$4.25  Each.  10/39.95  oO'^i'<«* 

*  8"  Standard  Floppy  Disks  *    >fef.*' 
Soft  Sector.  Hard  Sector  v> 
S4.50Each,  10/41.95 

■Add  4.95  lor  10  Pack  in  Deluxe  Disk  Holder 


MOTOROLA  IXORCISIR  COMPATIBLE 

9600  MPU  f^odule  w/6802  CPU $495.00 

9601  16  Slot  Mother  Board 175.00 

9602CardCage{l9"RetmaRackMount)  ...75.00 

9603  8  Slot  Mollier  Board 100.00 

96C4  Switclimode  System  Power  Supply ....  250.00 

9610  Utility  Protolypina  Board 36.00 

9616  Quad  8K  Eprom  Module  '** 

9620  1 6  Ctiannel  Parallel  I/O  Module ....  295.00 
9622  Serial/Parallel  1/0  Combo "' 

9626  8K  Sialic  RAM  Module  295.00 

9627  1 6K  Static  450ns 495.00 

9630  Card  Extender 68.00 

9640  Multiple  Programmable  Timer 

(24  Timers) 395.00 

9650  8  Chanriel  Duplex  Serial  I/O 395.00 

96103  32/32  1/0  Module 275.00 

96702  32  Point  Reed  Relay  Module 350.00 

0000  BARI  BOARDS 

9620-0 $45.00    9603-0 27.00 

9626-0. 45.00    9600 55.00 

9650-0 45.00    96103 55.00 

9601-0 50.00    96702  55.00 

Also  AMI  EVK  System  in  Stock 


APPLE/EXIDY/EXPANDO 
TRS  80  16K-UPGRADE  KIT 


*  16K  With  Jumpers  S  Instructions 

for  either  Level  I  or  Level  11  $89.95 

*  16K  for  Apple  M  Upgrade $89.95 

Special:  TRS80  Schematic $  4.95 

Expansion  Interface  Schematic $  4.95 


TRS  so  TO  S-1 00 

PET  TO  S-100  ADAPTER 

Allows  PetARS  80  to  be  interlaced  to 
popular  S-100  Bus. 

Pet  to  S-100  Kit $189.95 

Assembled $269,95 

TRS  80  to  S-1 00  HUH  8 1 00  Kit  ... .  $275.00 
Assembled $355.00 


KEYBOARD  ASCII  ENCODED 

One  time  purchase  of 
NEW  Surplus  key- 
boards. From  the  Singer 
Corporation.  The 
keyboard  features  1 28 
-ASCII  characters  in  a  63 
key  format.  MOS 
encoder  circuitry  "N"  key 
rollover,  lighted  shift  lock,  control,  escape  and 
repeat  functions.  Ltd  Oly     S3  KEY  $S9.S5 


UV  "Eprom^'  Eraser 

Model  UVs-1  IE  $64.95 

Holds  4  Eprom's  at  a  time. 

Backed  by  45  years 

expenence. 

Model  S-5ZT...  $21 0.95 

Professional  Industrial  Model 


TARBELL  FLOPPY  INTERFACE 

*  Z80/a080  Si  00  Compatible  *  Uses  CPM 
Assembled  lor  Shugan. .   .  SALE  (230.00 

Assembled  Othef  Drives S269.95 

Kll «179.95 

Bare  Board $36,95  (Doc.  Add  S10.00) 

Visia     Double     Density     SVi"     Controller 

Assem $299-00 

SD  Versa  FloDOV  Kit S159  95 

SD  Vtvsa  Floppy  AssemDiGtt  SIB9  95 

Tarbel  Cassette  I/O  Kit     Sit  5.00 

Sale  *    1771-01  Floppy  Chip S27.95 

BYTE  USER  8K  EPROM  BOARD 

■k    Power  on  Jump  *    Reset  Jump 

Assembled  &  Tested $94.95 

Byteuser  Kit 364.95 

Bare  PC  Board $2 1 .95 

Special  Offer:  Buy  4  kits  only  S59.95  each 

MR-8  8K  w/1  K  Ram $99,50 

MR-1 6  1 6K  w/1  K  Ram  $99.50 

EPM-1  4K  1  702 $59.95 

EPM-2  2708  or  2716  Eprom $69.95 

Z-80/Z-80A/8080  CPU  BOARD 

*  On  board  270S    *  2708  included  (450ns.) 

*  Power  on  jump    *  completely  socketed 

Assembled  and  tested  $185.00 

Kit $129.95 

Bare  PC  Board $  34.95 

*  For  4MH2  Speed  Add  $15.00 

8080A  Kit $   99.95 

8080A  Assembled SI  49.95 

S-100  MOTHERBOARD  SPECIAL 

8  slot  expandable  w/9  conn. 

reg  $69.95 NOW  $52.95 


TARBELL  FLOPPY  CONTROLLER 

Card  assembled  and  tested  for  use  with  Shugart 
Drives   S  SALE  PRICE  only  $229.00 


ACOUSTIC  MODEM 

NOVATION  CAT'" 

0-300  Baud 

Bell  1 03 

Answer.  Originate     $198.00 

ACOUSTIC  COUPLER  SPECIAL 

AJ  MODEL  A30 
SPECIAL  PURCHASE 
OF  SURPLUS  UNITS 
AVAILABILITY  LIMITED        329.95 


DATA  BOOKS    •    COMPUTER  BOOKS 

197eiCMafllaf     .   19.95    Inter  MCS  BO  Mariuil         .7.96 

NSCTTLDalfl 3.95    Inlal  MCS  40  Manunl. .       .4.96 

NSCLInear 4  95   AMD  S080A  Manual..   .   .    5.96 

NSC  Linear  Aop  Notes II    3  93    AMD  Schottky  Daletxwh.  .4,B5 
NSC  CMOS  3  95    AMIMOS/LSIDtla  .3.95 

NSC  Memory 3  95    Ul  MOS/LSI  Daia    .  4  95 

Iniel  OalBDcwk  .  4  95    Harris  Analog  Darabook      4.85 

Intel  MCS  85  Manual         7  50    Tl  Linear  Control  Data     .     3.95 
•ALI  •  OftBORNI  lOOKI  ■  «ALX 

nm%.     tale 

eOSOA  Progmmniing. qXQ     7.75 

6800  Programmino ffBQ     7.75 

Z8 6  Programming, (TBO     7  75 

Vol,  I!  Soma  Real  Microprocessor  w/Birujer . .      ,  3&.00  27  50 
Vot.  Ill  Some  Fleal  Support  Devices  w/Binder  .   .   .204a  18,50 

Intro  10  Micros  Vol.  til     ...  ?O«a.lB50 

*ALK  ■  OILmilUM  COMPtmiN  aOOKI  •  tALI 

Undersiending  Computers I^W.    7  95 

BOeOMicrocumputer  Eiperimenis       TJrM.  1 1  95 

Beginning  BASIC »**.    8  95 

Beginners  Glossary  4  Guide  frSfc     5  95 

Peanut  Buller  A  Jelly  Guide  to  Compuleis.  T-S*.     6  95 

S080  Macnjne  Language  Programming  .  T^t.     6  95 

Home  CompulersVo*  I  Hardware  T«fc     6  95 

Horr>e  Computer<t  Vol   II  SotlurBie  T»M    1 1  95 


Z-80     

Z-30A 
F-a  (3650) 
2650 
CD  1 80? 

eoaoA 

B0a0A-4MHi 
SALE  eo85 

Booa-t 

290 1 
2901 A 
mS  9900JL 

CPteoo 

6502 
6502A 
IM6100 


6803P 
8035 
8755 

8748. 


t18.( 

18.95 
I6.d5 
16  95 
19  95 
9  95 
19  95 
1B.Sfi 
14  95 
16.95 
2495 
49,9S 
39  95 
11  50 
19.95 
29  95 
. ,  16  95 
24.93 
17.50 
49  95 


SUPPORT  DEVICES 

AM95 1 1  AT.Tfi  Processc'       S 1  95  DC 

AM  9511-1  300ni 245.0C 

AM95'7  DMA  Conrrom-i  7t  9; 


3981  LZBOPlOl 
3881  4<4MHij 
3a82l2-aOCTCi 
3082-1 I4MHII 
8206'74SI38  DecoOB' 
a2t2  8D.ll'0 

a2M  PriOLlylnl 

8216  eu-jO'ivC' 
8224  Clock  Gon 
8224-4  (4MHII 
8226  Bus  Drive. 
8T26  BusDriuGi 
8228  Sys  Conirol 
8238  Sys  Com 
8251  Prog  I/O 
8253  Int  I.mer 
8255  P'og  f.'O 
825?  Piog  DMA 
8259  P'og  int 
927SCHT  Conl'Oiief 

8279  Prog  Keybofl'd 

68lO'l  l28.eRAU 

6820  PIA 

6331  PIA 

6838  Priority  Inl 

6334-1  512  .8  Enrom 

6850  ACIA 

6352  Sfcual  AdapWr 

6345  HD46505CHir"o 

6360  Modem 

6362  Modulator 

6fl71A  IGMMiOSC 

6875 

6880  Bus  Dr-ver 

MCe84a8 

1821  SCO  IK  RAM 

1832  SCO  256  "4  RAM 

1824  CD  32.  8  RAM 

1852  CD  8  Bit  I  O 

1854  Uan 

1856  CD  I/O 

1857  CO  I/O 
6520  PIA 
6523  Mull 
6530-003 
eS30'003 
6530004 
6S30  005 

3851  FaP'og  Sio'c 
3853  f8  Memor,  I  O 


295 

2  50 
4.95 
250 

3  95 
9  75 
3  95 
3  39 
5.95 
6  35 
6  95 

19  50 
650 
19.50 
19  50 
74  95 
19  95 


9  95 
39  95 
■  995 
11  95 
35  95 

8  35 
2  39 

19  35 
25.00 
16  95 

9  95 
10  95 
1095 

8  95 

8  95 
7  50 

9  25 


DYNAMIC  RAMS 

416/4116  leXdBPm)  12.4 

Spi  0(8  4163  .  89.9 

dn58K116Pinl 8.9. 

4050  4K  .  1  lie  Pinl  4  2 

4060  4K  I  1  [22  Pinl  4  9 

4096  4K  >  1  116  Pm)  39. 

3104  4K  «  1  |16Pin|  "             4  7 

4027  4K  .  1  116  Pint  4  9 

5361            195         1103  1.9 

5262 

5270 

5280 

5290         12  45 

PROMS 

2708 
^708-6 


4  95 


4008L 
6605 
6604 
6002 


27I6-5V    12V 

2756  SV 

6?0;iAO 

5204  AO 

tS834- 1 

1M  StilO 

«ALISa33  3SaS... 

82SnSS12>8ITSl 

82S12332>i8 

82SI26  2S6i4 

32S139  256x4(TS)  . 

62S130  512x4(OC) 

NSC  DM7578  33  «B  . 


59  95 
40  00 
29.95 


.16.95 

.2.50 
.3  50 

.3.50 

.  6.50 

2.95 


CHARACTER  QEN 

2513001  l5V)UDpei 

2513005  I5V1  Lower 

2513ADM3  15VI  Lower 

MCM6571 

MCM6571A 

MCM6574 

MCM6575 


UARTS/USRTS 

TRt6C2Bi5V    12VI 

AV5I013I5V    !2V1 

AV51014A/1Sl*t3  14V. 

AY51015A/1863(5VI 

rMS6011  tSV.  I2V1 

IM6402 

IM6403 

3350  USRT 

ie71B  Asiros 

tALITRt473B B.SS 

BAUD  RATE  OEN 


695 
695 
5  50 
7  95 

S95 
9  95 
24  95 


KEYBOARD  ENCODERS 

AV5-?376  13  /5 

Ava-riboo  ":i  'f> 

HD0165  9.95 

74C933.  .9  95 

74C923 995 

A/D  CONVERTERS 

8700  8  11.1  Binary  13  50 

H701   lOtm  Bin.iry  V2Q0 


1-24 

25-99 

too 

3iL03  450ns 

1.30 

1.25 

1.15 

3iL02  25Dn5 

1  55 

145 

1.15 

1.10 

3111 

3.65 

3  55 

3112-1 

2.85 

2.65 

2101-1 

2  90 

3.70 

2  55 

3114L-250nE 

9.9S 

2114L-3O0ns 

B.95 

7  95 

6.45 

3114L<4B0nB. 

7  50 

4.TB 

4044/4041  300ns 

995 

7.95 

4O44/4041  4a0na 

7  50 

675 

4.TS 

EMM4200A 

9  75 

8  75 

796 

EMM4402 

725 

6  25 

EMM4a04 

1250 

1150 

995 

5101CE 

r-ib 

7  96 

7  35 

uOd4  to. 42001 

10  96 

1025 

9!5 

AMD9'40  41 

10  95 

10  25 

9  25 

AMD9130  Jl 

12  96 

1196 

10  ?5 

FSC  460  46416KCCD  Only  » 

8  95  Ear 

not 

P21  25  93435  i4f.n 

1  7  95 

7  35 

7  25 

6508  IK  <  1  CMOS 

7  95 

7  95 

7  25 

6518  IK.  1  CMOS 

7  95 

7  95 

7  35 

8155l,'0*/nam   3 

95 

2147Lo*Power4K 

Staiic  14 

5ea 

CHARGE  COUPLED  DEVICES   | 

16K  ceo  ■  First  i,me 

tiered  Fa 

child  460  CCD      1 

leKUemoiYtnowyo 

iCCD 

lechnoiogv  ai  a  reasonable  o'ici 

i7oageADoi>ca-I 

tionnoie  supplied  with 

eachtirde 

Quant.i 

iimi-ed) 

$18.95  each  (reg.  43.00) 

CRYSTALS 

Mlcroproceasor  Tlmataaiei  TV  Oam« 

Frequency 

P>k:e 

60MH1 

184,1.'                    4  as 

.■i>MH/                      SH5 

6  5536 

.'OlMH.-                 J95 

10  0MH- 

4B5 

20971h.'MMJ         5  65 

UOMHi 

4  35 

,'4!i.-flMH;              bab 

14  31818 

4  35 

J'..;45.I^Mlt/         150 

180MH/ 

4  35 

J  CMH/                      4  95 

ta  432MH/ 

5  95 

4  191104MM/         ;i95 

20  0MH; 

4nlfiJ(lMH/           f.95 

22  1184MM/ 

'.IIMH;                      4  95 

;'7  OMHy 

5  95 

■  mm                       4  95 

'35  0MHf 

5  95 

./l4.iWH.-              595 

4B0MH? 

5  95 

100KC 

1296 

DISPLAYS/OPTO/LED'S 

*  TSKQMiHT   •    CALC    *    CLOCKS    * 

DL  704  iCC).  DL  707  (CAj  300"  Red     .      .       99 

FND  357  (CCl  357  Red  99 

FND  500/503  (CCl  500'  Red  .  .         99 

=ND507/5l0iCA(  500~Red  99 

=ND  800/803  (CO  800' Red  1  75 

FNDe07/810(CA(  800'Red  1  75 

■;AN3062   SOO'Greeo  t  IS 

HP5082-7731  (CA)  300"  fled  99 

9  Digd  BubOle  Mmi  Calc.  Display  99 

9  Digit  Pnnaplei  Display  .400"       99 

gD-gil  riuorescont  ,300"  99 

I^A1 003  1 2V  Aulo  Clock  Module  1  8.90 

Bezel  lor  MA1003  w/Red  Filter       4  95 

MA1002ALED  13  lir.  Clock  Module 10-95 

*  HEX  DISPLAYS  *  ENCODED  DISPLAYS  * 

:iP  5082-7340  Red  He-decimal iS.95 

HP  5082-7300  Red  Nymeric 14,95 

TIL  306  Numc'ic  w/Logic    ft95 

TIL  308  Numtwr  w/Logic 896 

TIL  309  Numtjor  w/Logic. .  895 

riL  3 1 1  HeiBdecimal 1 395 


•  LID-B    *    OPTOISOLATERS   * 

LEDS  Red.  Yellow.  Green   185. 
UCT  3  Photo  XSTR  HFE  350,  30V 
4N25  Pholo  XSTR  HFE  350,  30V  .. . 

4N33  Ptiolo  Darlington 1,76 

FPT  llOBP'ioloXSTRFlalLense        SALE4/I  00 

ATTENTION  KIM  USERS 

«IMSAI-eipansiontoS-100    ..  125.00  Kit/16500 

KIMS1 10  KtM  Connecic 5.75/pan 

KIM  1  6502  Single  Board  Computer    ..   .179.00 

KtM  1  Power  Supply 59.95 

KIM  Memory  Plus  ■  (coosisls  ol  BK  Ram, 
6K27 1 B  Eorom.  Programmer, I/O  e1c.|. . . .  245,00 
KtM  SOnWARE 

•  F>toaso  package  (cassette)  I2game3. ...  18.95 
■   Help  Editor  package  icassetle) 16.9S 

•  Help  Mailing  List  pkg,  |casEellel 1 6.95 

•  Help  iniQ  Retiival  plig.  (cassette) 1  B.B5 

•  Micfoctioss(casseiie)   18.95 

•  Microaid  Assembty/Disassem/Edito' ,     ,27.55 

•  MK^roflid  Source  Lisling  (cassette!      .    ..27.95 

•  Tiny  Basic  lo' KIM  loaper  lapel..  10  95 

COMPUTER  SPECIALS 


HiPlol  Plotter 
HiPlol  DiQitiiei 
Emdy  W/33K 
AoplC  IIW/16K 
Compucolor  II 
TEIPT20eil  0 


M»o^ 


i'*^ 


Commodore  F 
Soroc  IO/120 
ADM3AA3san 
Tetelype  43 
Centronics  P- 
CenlrontfsS-' 


UST 

108500 
795  00 
1395  00 
1195  00 
1695  00 
4995  00 
5990  00 
795  00 
995  00 
395  00 
134900 
495.00 
595  00 


SALE 

899  00 
735.00 
119500 
104500 
159500 
3995.00 
5395  OC 
765  00 
89500 
82900 
1150  00 
395  00 
625  00 


MONTHLY  IC  SPECIALS 

LF13508  JFET  Antoq  Mutti  8  bil 
ICM7208  Seven  Decade  Cojntei 
ICM7307  Oscillaior  Controller 
ICM7045  Precision  StoWatch  Timer 
ICL71073'jDiBitA/DlLEDl      .       , 
ICL82n  Voltage  Ralerence 
LM390  Battery  OP.  Audio  Amp  . 
LMi630Fii„o  Detector 

LM1850  Ground  Fault  IC 
LMIBOO  Phase  Lock  Loop  FM  SlO 
LM1820  AM  Radio 
DS3625  Dual  Mos  Sense  IW\o 


1333  Pram 
6331-1  Prom 
UK50t4  Call 
74 1 4  1 N 
LM2917 
aT2e/8T2a 
95H90    .. 


J  P.n  W  W     85 


8P.nST  17 

14  P.r,  S  T  20 

16  Pin  S  T  23 

iaP.r>ST  31 

20PmST  34 

93       2Z  P.n  S  r  35 


TEXTOOL  ZERO 

INSERTION  FORCE 

SOCKETS 

16  Pin   S   5.50                24  Pm 

57,50 

40  Pins  10  35 

CONNECTORS 

DB25P(RS233) 

3  25 

OB25S  Female. ,  .■ 

Hood     .     ... 

Sei  w/Hood.  Sale.,  .     . 

22/44  W/W.  SrT,  KIM    .   . . 

43/86  W/W  S/T.MOT 

eso 

50/100  S-100  Connector  w/w 

50/100S100  Connector  s/t 

CTS  D1P5WITCHES 

CTS206-4  5175  CTS20e-6  51  95 

CTS206-5  SI  75  CTS206-9  SI  95 

CTS206-6  S1.75  CTS206-10  SI  9S 
CTS206-7  SI  75 

LIVERMORE  BASIC 


OUR  PRICE  only 


NAKED  PC  BOARDSAUi 


2-80  CPU  (ithacai. 
80aOA  CPU  . 
6K  Stai«  RAM  iLogosi 
16K  Static  RAM  121141 
32K  Static  RAM  (3114) 
Fiopoy  I/O  (Tartwtl) 
Cassette  I/O  (Tarbeiij 
8K  Epram  (3708) . , 
1703  Eprom  Board     - 

3708/2716  Eprom  (itnaca) 
3708/27 1 6  Etwom  iWMC) 
Realtime  Clock 
ACPProtQBd.|3MConn| 
Vector  6800  Proto  . , 
Vector  8803  ll  skjIMB 
ACP  Eilender  w/Conn 
Video  tnlerface  [SSM) 
Paraliet  Inierface  tSSMi 
13  Slot  MotherSoard  (WMCI  32.95 
95>oiMainerBoard(WMC)       2995 
BSiot  Mother  (eipandable)      34.95 


S34.95 
34  95 
2195 

2195 
49  95 
3995 
39  95 
3195 
30  OC 
3495 
.30  00 
34  95 
27.95 
19.95 
29  95 
1595 
27  95 
27  95 


WAVEFORM 
GENERATORS 

HOjy  Fiinclicn  Gen 
MC4024  VCO 
LM566 VCO 
ItR.iJOeFunct 


.  Ger>i' 


525 


FLOPPY  DISK  I/O 

1771-01  8'*Miniiloory  27  95 

uPd372  Nee  Floppy 
1781  OualFloooy 
1791  Dual  FTooBV 


49  95 
39  95 
44,95 


TV  INTERFACES 


29      MAR  Modutalof. 


850 
8  95 
3500 

.35  00 


ATTENTION 
PET  USERS 

BETSI-pel  expansion  lo  SlOO 

10500  Kil/ 160  00 

PET  Connector  Kit.  Includes  14) 
Conneclofs  (or  mamcv  eipansion, 
IEEE   488   I/O,   cassette   I/O  and 

paraltel  user  port 7,95/set 

Video  Buffer 

Iconveits  to  Std.  Video). 
Peiunia  (Music  BoardI 
Combo  (Video  S  Peiumal 
Beeper  Isignais  tape  load) . . 


29  95 
29  95 
4995 

. .  24  95 


ATTN  TRS  80  USERS 

20/40  Pin  Memory  E»p 


S7  95 

I      89  95 

395  00 

1095 

39  95 

117900 

1579  00 

995.00 

MicniP  (same  as  Quick  Printer) 

...  .     395  00 

Caoletoo'u9inE>pans,ool/0      3900 

Power  Strip  i6  ouHetsl  

Surge  SupprE 


18K  Memory  AOd'On  w/ins 
Visia  V80  Mmitioppy 
40  Track  DOS  Patch  on  Dish 
4  Dnve  Cable  tor  V60 
Centronics  779  w/tractor 
Canironics701  Bidirect 
ANADEX  DP8000 


Crosolt  Forlran  on  Disl 

Electric  Pencil  on  CasSBi 
Electric  Pencil  on  Disk 
CP/M  tor  TRS  on  Disk  . 
LiDra'y  lOOicasieiiesi 
M.cro  Chess,  icasseiiel 


33  95 
32500 

.9900 
15000 
15000 
4995 
1995 


3'1  00 

250 

9  95  10147  KLRamT-TaM 

'I  99  rjESOt 500 

'^^^"^"  ^"""■''  '°'i2?  LF356HBIFBt.. 3/1.99 

"  III  MCM14505 8.96 

o,    n^  '«89 3/1.89 

-,.\^  74107N 6/1,99 

■J'  1  99  7S452N a/1 99 

225  741M-14 10/1.99 

2;l9  555CN 5/1.99 

995         B58C"  


AT3Bftar-l  fi»col.ng  OdBr-S 
4TlBeiO-1  10G4rTi«^Cnhv  4 
»V3»6 1  b  Coki-  Camfi- 


ATTENTION 
APPLE  II  USERS 

Applpll  w/HiC 
16KU«|..m- 
Floppy  Drsk  tl 
Floppy  Disk  It 
Fitmw.-u..  Card 


ipmcnii    FCM    o>    UHS.      Ord 

SIOO.IM    add    5K   htndling   i 

3/1,90    poii*9t.    Orden  over  SIOO.OD  add  2,5%  I 
tiindling  &  pottaga.    M*i((rchitg«/Bink. 
amtricard/COO  accsplcd  w/25%  diiMul, 
Cilitoimi  REiid«nliMMB%((ii.   Foreign   I 
Otdtri  add  B%  handling     All  lurtt  pr 
Sl045tX)  factory    tnlKj    guiianlnd.      Simt 

H9  95  ,       ihlpntwiL  Add  .3&  canU  for  0«tt. 

595  00  .        BHait  p..c.r>ij  .iwy  v.i.y  ri.HH  M..II  Ol 

*95(X)  Piicinu     AH    pncing    sulm-tt    to    Change   I 


P.  0.  BOX  17329        Irvine,  California  92713        Phone  (714)  558-8813 


TWX:    910  595-1565 


Retail  Store  Open  Mon.  -  Sat. 
Located  at  1310  "B"  E.  Edinger, 
Santa  Ana,  CA  92705 


BYTE  August  1979        235 


Whsfs  NewP 


SOFTWARE 


Extended  FORTRAN  Preprocessor 

X4  is  an  extended  FORTRAN  pre- 
processor for  use  in  the  Cromemco 
CDOS  environment.  X4  translates  pro- 
grams into  standard  FORTRAN  from  a 
readable,  well  structured  language  pro- 
viding modern  control  structures  for  con- 
ditionals and  iteration  that  virtually 
eliminate  the  need  for  statement 
numbers  and  GOTO  statements.  X4  also 
provides  automatic  file  inclusion,  a 
macro  facility,  mixed  upper  and  lower 
case  input,  and  the  expansion  of  quoted 
strings  into  numeric  character  codes 
where  desired.  X4  is  available  with  com- 
plete documentation  on  CDOS  (CP/M) 
format  5  inch  floppy  disk  for  $.S9.95. 
Contact  Modular  Systems  Inc,  4005 
Seven  Mile  Ln,  Pikesville  MD  21208. 
Circle  531  on  inquiry  card. 


Word  Processor  For  TRS-80  Disk 
Operating  System 

Word-Ill  is  a  text  processor  for  the 
TRS-80  disk  operating  system.  Requiring 
16  K  bytes  of  memory,  it  accepts  lines 
of  text  interspersed  with  lines  of  format 
control  information  and  then  formats 
the  text  into  a  displayable  document. 
Word-Ill  features  automatic  line  adjust- 
ing, margin  right  justification,  page 
numbering,  centering,  title,  page  size, 
line  width,  indentation,  and  vertical 
spacing  control.  It  is  written  in  TRS-80 
Disk  BASIC  for  easy  loading  and  expan- 
sion. Word-Ill  is  disk  based  with  a  size 
limited  by  disk  storage.  It  uses  the 
printer  interface  that  already  exists  in 
the  expansion  module.  Instructions  are 
given  to  make  software  modification  to 
other  printers  not  using  IPRINT  com- 
mand. 

The   price  of  Word-Ill   is  $39  com- 
plete  with  source  code.  For  further  in- 
formation contact  Micro  Architect,  96 
Dothan  St,  Arlington  MA  021  74. 
Circle  532  on  inquiry  card. 


Business  Software  Series  in  BASIC 

The  Standard  Software  Library  is  a 
series  of  books  containing  listings  of 
programs  written  in  BASIC  with  com- 
plete documentation.  Each  volume  in 
the  series  is  devoted  to  a  single  applica- 
tion. The  first  three  volumes  deal 
with  accounting  programs  for  small 
computers.  Volume  I,  General  Ledger 
enables  a  small  business  to  set  up  a  fully 
automated  general  ledger  system  with  a 
complete  chart  of  accounts.  Included 
are  programs  for  editing,  sorting,  merg- 
ing and  posting  of  transactions.  A  trial 
balance  report  is  available  in  either  sum- 
mary or  detail  at  the  user's  option. 
Income  statement  and  balance  sheet  re- 
ports may  be  obtained  at  the  close  of 
each  accounting  period  with  both 
current  and  year  to  date  totals  and 
percentages. 


6502  Robot  Language 

Written  in  6502  machine  language, 
Robot  is  an  interactive  programming 
language  for  the  control  of  robots.  The 
robot  may  be  a  Turtle,  plotter,  or  video 
cursor.  The  heart  of  Robot  is  a  com- 
mand processing  module  designed  to 
allow  the  user  to  design  a  language  of 
personalized  commands  and  command 
subroutines  to  suit  a  particular  appli- 
cation. 

The  version  of  Robot  that  is  being 
offered  includes  a  command  set  and  sub- 
routine package  for  the  control  of  a 
video  robot.  The  subroutines  are  designed 
specifically  for  the  TVT-6  video  inter- 
face, but  will  work  with  any  memory 
mapped  video  display  and  can  be  adapted 
by  the  user  for  varying  formats.  Robot 
takes  slightly  more  than  1  K  bytes  of 
programmable  memory  and  comes  with 
a  user  manual  and  a  completely  com- 
mented source  listing. 

Robot  is  priced  at  $5  (add  $3  for 
KIM-1  Hypertape  cassette).  For  further 
information  contact  Michael  Allen,  6025 
Kimbark,  Chicago  IL  60637.  This  vendor 
also  offers  a  6502  tiny  editor  and  as- 
sembler. 

Circle  533  on  inquiry  card. 


Free  Monthly  Review  of 
Software  Products  Available 

Users  of  Northstar  BASIC  can  receive 
a  free  subscription  to  John  Dvorak's  Soft- 
ware Review.  Each  month  the  software 
review  examines  and  reviews  new  soft- 
ware packages  and  reports  on  the 
relative  merits  and  value  of  the  product. 
At  the  moment  the  mailing  list  has  focus- 
ed on  users  of  Northstar  BASIC  but  plans 
are  in  the  works  to  introduce  a  newslet- 
ter for  users  of  CP/M  oriented  systems, 
TRS-80  and  eventually  Apple  users.  For  a 
free  subscription,  write  to  J  Dvorak,  704 
Solano  Av,  Albany  CA  94706. 
Circle  534  on  inquiry  card. 


Volume  2,  Accounts  Receivable  pro- 
vides a  fully  automated  system  for 
dealing  with  customer  accounts.  Volume 
3,  Payroll  enables  a  business  to  automate 
all  of  the  normal  payroll  functions.  All 
of  the  programs  are  written  in  a  level  of 
BASIC  common  to  practically  all  of  the 
current  microprocessors  and  minicom- 
puters. The  modular  nature  of  the  pro- 
grams and  the  accompanying  documen- 
tation make  it  easy  to  revise  the  program 
to  meet  special  user  requirements. 

The  documentation  includes  an  over- 
all view  of  the  program,  a  list  of  the 
variables  used,  a  description  of  the 
required  user  inputs  and  an  illustrative 
example  with  sample  output  reports. 
Annotated  comments  are  contained  in 
all  of  the  programs. 

Contact  Creative  Computer  Consul- 
tants Inc,  POB  2111,  Norwalk  CT  06852. 
Circle  535  on  inquiry  card. 


Microcomputer  Text  Editor 

Edit-80  is  a  random  access,  line  or- 
iented editor  for  8080  and  Z-80  systems. 
It  provides  almost  instantaneous  access 
to  any  record  of  the  file,  even  if  the 
available  memory  space  is  considerably 
smaller  than  the  file  being  edited.  In 
addition  to  the  standard  line  commands 
to  insert,  delete,  print  or  replace  lines 
of  text,  Edit-80  offers  many  other  fea- 
tures such  as  automatic  line  renum- 
bering, global  find  and  substitute, 
multiple  page  files  and  ability  to  read 
in  files  without  Edit-80  line  numbers. 
Edit-80's  alter  mode  provides  a  complete 
set  of  intraline  subcommands  to  edit 
portions  of  individual  lines.  With  Edit- 
80,  the  edited  file  is  not  written  to  disk 
until  a  write  command  is  given,  and  the 
original  file  is  always  saved  as  back-up. 

The  Edit-80  Text  Editing  Package 
includes  a  file  compare  utility  program 
called  FILCOM  which  compares  source 
or  binary  files  and  outputs  differences 
between  them. 

Edit-80  runs  on  any  8080  or  Z-80 
system  with  the  CP/M  operating  system. 
The  price  for  the  Edit-80  Text  Editing 
Package  is  $120  and  the  manual  is  avail- 
able for  $10.  For  further  information 
contact  Microsoft,  300  San  Mateo  NE, 
Suite  819,  Albuquerque  NM  87108. 
Circle  536  on  inquiry  card. 


The  Realty  Expense  Analysis  Program 

REAP  is  designed  for  the  property 
owner  or  manager  and  provides  complete 
expense  information  for  each  building  in 
payment-by-payment  and  summary  for- 
mat which  includes  tax  ready  totals  for 
IRS  filing.  The  building  payee  report 
displays  expenses  for  any  building, 
for  all  or  selected  payees.  The  utility 
summary  report  displays  yearly,  year-to- 
date,  or  monthly  average  utility  expenses 
for  each  building  under  the  categories 
electric,  gas,  water,  and  trash.  The  tax 
totals  report  displays  totals  for  each 
building  under  the  categories  utilities, 
insurance,  repairs  and  property  tax. 
Special  accounts  may  be  set  up  to  track 
auto,  general  office  management,  adver- 
tising, telephone  or  any  other  expense 
type.  Complete  data  inputing,  editing, 
and  sorting  capabilities,  all  with  exten- 
sive error  recovery,  provide  easy  data 
file  maintanence.  Expense  data  may  be 
added  to  the  file  and  the  latest  reports 
run  at  any  time  interval. 

REAP  is  available  on  cassette  with 
complete  documentation  for  the  TRS-80 
Level  I  and  II,  Apple,  and  PET  com- 
puters. Each  16  K  bytes  of  user  memory 
will  handle  500  yearly  expense  pay- 
ments. Larger  data  files  are  possible  by 
using  disk  data  storage.  REAP  is  priced 
at  $25.  Documentation  only  with  sample 
reports  is  $2.50.  For  further  information 
contact  Realty  Software  Co,  2045  Man- 
hattan Av,  Hermosa  Beach  CA  90254. 
Circle  537  on  inquiry  card. 


236        August  1979  ©  BYTE  Publications  Inc 


Venus  2001 
Video  Board 


Assembled  &  Tested 
$259.95  •Complete 
Unit  with  4K  Memory 
and  Video  Driver  on 
Eprom  assembled 
and  tested  $339.95 


kiti99 


95 


OPTIONAL:  •  Sockets  $10.00 

•  2K  Memory  $30.00 

•  4K  Memory  $60.00 

•  Video  Driver  Eprom  $20.00 

•  S'100  plug-in  •  Parallel  keyboard  port 

On  board  4K  Screen  Memory  (Optional).  On  board  Eprom 
(Optional)  for  Video  Driver  or  Text  Editor  Software. 

Up  and  down  scrolling  through  video 

memory  Reverse  Video,  Blinking  Characters. 

Display  :  128  ASC1  1  characters  64  X  32  or  32  X 
16  Screen  format  (Jumper  Selectable).  7  by  11  Dot 
Matrix  Characters. 

American  or  European  TV  Compatible 

(CRT  Controls  Programable)  Dealer  Inquiries  Invited 


32-K  Static  RAM   $499. 


•  S-100  Plug-In     •  Kit  includes  P.C.  board,  all  parts 
and  assembly  manual     •  Uses2114L,  450nS. 

I.e.  sockets  -  $20.00 
P.C.  BOARD  BY  S-100  CO. 


16-K  Static  RAM    $249. 


•  S-100  Plug-In  Kit  includes  P.C.  board,  all  parts  and 
assembly  manual.  Uses2114L450nS. 

Sockets -$10.00 
Add  $40.00  for  300  nS  (4MHz)  RAMS 
P.C.  BOARD  BY  WAMECO 


z-80  CPU  $125. 


•  S-100  Plug-In  Kit  includes  P.C.  boards,  all  parts 
and  assembly  manual. 

FEATURES:     2MHz    operation     •    S-100    plug-in 
Power-on  jump     •  On  board  provision  for  2708 
(optional  at  $12.95). 

P.C.  BOARD  BY  ITHACA  AUDIO 


ASCII  Keyboard  Kit  $79.95 


Assembled  and  Tested  $95.95 

•  Single  +5V  Supply  •  Full  ASCII  Set  (Upper  and  Lower 
Case)  •  Parallel  Output  •  Positive  and  Negetave  Strobe  • 
2  Key  Rollover  •  3  User  Definable  Keys  •  P.C.  Board 
Size:  17-3/16"  X  5"  •  Control  Characters  Molded  on  Key 
Caps  •  Optional  Provision  For  Serial  Output 
OPTIONAL:  Metal  Enclosure  $27.50  •  Edge  Con.  $2.00  • 
Sockets  $4.00  •  Upper  Case  Lock  Switch  $2.50  •  Shift 
Register  (For  Serial  Output)  $2.00 

Dealer  Inquiries  Invited 

Apple  II  I/O  Board  Kit 

Plugs  into  Slot  of  Mother  Board 

•  1  8  Bit  Parallel  Output  Port  (Expands  to  3  Ports)  •  1  Input 
Port  •  15mA  Output  Current  Sink  or  Source  •  Can  be 
used  for  peripheral  equipment  such  as  printers,  floppy 
discs,  cassettes,  paper  tapes,  etc.  •  1  free  software  listing 
for  SWTP  PR40  or  IBM  selectric. 

PRICE:  1  Input  and  1  Output  Port  $49.00 
1  Input  and  3  Output  Ports  $64.00 
Dealer  Inquiries  Invited 


new !  A  DREAM  COME  TRUE ! 


lntroducing:30  MHZ 
DUAL  TRACE 
PORTABLE 
SCOPE,^^^  , 

for  an  ^H'>'^ 
amazing   ^^^« 

•  Dual  trace  2-channel;  separate, 
chopped  or  alternate  modes.  •  30  megahertz 
bandwidth.  •  External  and  internal  trigger. 

•  Time  base  - 0.05 .Microseconds  to 0.2  SEC/div 
21  settings  •  Battery  or  line  operation. 

•  Line  synchronization  mode. 

•  Power  consumption  less  than  50W.  •  Vertical  gain  - 
0.1  to  50  volts/div- 12  settings.  •  Size:  2.9"  H  6.4" 

W  8.5"  D.  •  Weighs  only  3.5  lbs.  with  batteries. 

•  Complete  with  input  cable  and  rechargeable 
batteries  and  charger  unit. 

OPTIONAL:  Leather  case  $45.00  •  10:1  probe  $27.00 
(2  for  $49.00) ^^^ 

MS -SIS  ^^^^ 

■^6  MHZ  Dual  Trace  Portable  Scope  $399. 

MS-15 15  MHZ  Single  Trace  Scope  $299. 


MODEL 
MS  230 


SHIPPING  $3.50  /  California  residents  add  6%  sales  tax 

ELECTRONICS  WAREHOUSE  Inc 

15820  Hawthorne  Boulevard 

Lawndale,  CA  90260 

(213)  370-5551 


What's  New? 


MISCELLANEOUS 


New  Fully  Implemented  Pascal  System 

The  Independent  Business  System's 
Betasystem  is  a  complete  operating 
system  that  features  the  UCSD  imple- 
mentation of  Pascal.  The  operating  sys- 
tem contains  a  powerful  screen  oriented 
text  editor,  a  fast  Pascal  compiler,  file 
and  library  handling  systems,  linker, 
Z-80  assembler  and  more.  This  Z-80 
microprocessor  comes  complete  with  48 
K  byte  programmable  memory,  dual 
quad  density  (630  K  byte  formatted) 
disk  drives,  serial  and  parallel  ports,  60 
character  per  second  dot  matrix  printer 
with  tractor  feed,  and  intelligent  ter- 
minal with  addressable  cursor.  It  sells 
for  $5485.  For  further  information  con- 
tact Independent  Business  Systems  Inc, 
5476  Cleo  Ct,  Livermore  CA  94550. 
Circle  635  on  inquiry  card. 


16  K  Byte  Programmable 
Read  Only  Memory  Board 

Electronic  Solutions  16  K  byte  pro- 
grammable read  only  memory  board  is 
compatible  with  the  Intel  SBC  80  bus 
and  single  board  computer.  The 
PROM-16  accepts  sixteen  2708  erasable 


read  only  memories.  The  board  has  a 
convenient  addressing  scheme  allowing 
jumper  selection  of  the  board  base  ad- 
dress at  the  beginning  of  any  4  K  block. 
Any  number  of  1  K  byte  memory  blocks 
may  be  deselected  by  jumper  removal, 
thus  freeing  these  1  K  byte  memory  ad- 
dresses for  the  processor,  programmable 


memory,  etc.  When  fully  loaded  with  six- 
teen 2708  erasable  read  only  memories, 
the  board  typically  draws  0.31  A  (from 
-1-5  V),  0.48  A  (from  -5  V),  and  0.80  A 
(from  -H2  V).  For  further  information, 
contact  Electronic  Solutions  Inc,  7969 
Engineer  Rd,  San  Diego  CA  92111. 
Circle  558  on  inquiry  card. 


BUILD  YOUR  OWN  LOW  COST 
MICRO-COMPUTER 

POWER  SUPPLIES 

FOR  S-100  BUS,  FLOPPY  DISCS,  ETC. 


POWER  TRANSFORMERS  (with  mounting  brackets) 


ITEM 
NO. 


USED  IN 
KIT  NO. 


PRI.  WINDING 
TAPS 


SECONDARY  WINDING  OUTPUTS 
2x8  Vac 2x14  Vac 2 x 24  Vac 


SIZE 
Wx  D  X  H 


UNIT 
PRICE 


T2 
T3 
T4 


OV,  110V,  120V 
OV,  110V,  120V 
OV,  110V,  120V 
OV,  110V,  120  V 


2x9A 
2X12.5A 

2x9A 
2X4.5A 


2X2.5A 
2X3.5A 
2X2.5A 


2X2.5A 
2X4.5A 


33/4"x3ya"x3y8" 
33/4"  x4%"x  31/8" 
3%"x4Wx3y8" 
33/4"x35/8"x3y8" 


19.95 
25.95 
27.95 
19.95 


SIZEWxDxH       UNIT  PRICE 


4A 
8A 


12"x6"x4%" 
12"x6"x4%" 
14"x6"x4%" 
10"x6"x4%" 


46.95 
54.95 
62.95 
44.95 


POWER  SUPPLY  KITS  (open  frame  with  base  plate,  3  hrs.  assy,  time) 

ITEM USED  for  @-l-8Vdc         @-8Vdc       (S-H6Vdc      (S-ieVdc       @+28Vdc 

KIT1       18  CARDS  SOURCE  18A  2.5A  2.5A  — 

KIT  2        SYSTEM  SOURCE  25A  3A  3A  

KIT  3           DISC  SYSTEM                18A                    1A                     2A  2A 

KIT  4  DISC  SOURCE  8A  1A  

EACH  KIT  INCLUDES:  TRANSFORMER,  CAPACITORS,  RESIS 
PLATE,  MOUNTING  PARTS  AND  INSTRUCTIONS. 

REGULATED  POWER  SUPPLY  "R2"  assy.  &  tested,  open  frame,  size:  9-  (W)  x  5"  (D)  x  s-  (H) $69.95 

SPECS:   -I-5V  +1%,  @  5A,  -H24V,  +1%,  @  5A.  OVERCURRENT  PROTECTION  AND  +5%  ADJ.  FOR  BOTH  VOLTAGES. 
REMARK:  IDEAL  FOR  ROCKWELL  AIM-65  MICROCOMPUTER.     ALSO  -5V,  @  1 A  OPTIONAL,  $5.00  ADDITIONAL. 
SHIPPING  FOR  EACH  TRANSFORMER;  $4.75.  FOR  EACH  POWER  SUPPLY;  $5.00  IN  CALIF,  $7.00  IN  OTHER  STATES.  CALIF.  RESIDENTS  ADD  6%  SALES  TAX.  OEM  WELCOME. 


BRIDGE  RECTIFIERS,  FUSE  &  HOLDER,  TERMINAL  BLOCK,  BASE 


MAILORDER: 

P.O.  BOX  4296 

TORRANCE,  CA  90510 


SUNNY  INTERNATIONAL 

(TRANSFORMERS  MANUFACTURER) 
Telephone:  (213)  633-8327 


STORE: 

7245  E.  ALONDRA  BLVD. 

PARAMOUNT,  CA  90723 

STORE  HOURS:  9  AM-6  PM 


238       August  1979  ©  BYTE  Publications  Inc 


/ 


Circle  354  on  inquiry  card. 


CaUFornia  DiqJTAL 

Post  Office  Box  3097  B    •    Torrance,  California    90503 


Sankyo  Magnetic 
Card  Reader 


These  Sankyo  I/O  units   are  capable  of  storing  and  retrieving  over 
r400  characters  of  data  in  under  two  secords. 

The  Qeitability  of  this   device  lends  itself  to  numerous  applications. 
I  As  an  Input  reader  to  a  computerized  security  system,    the  coni- 
I  puter  has  the  ability  of  identifying  the  card  holder  and  admitting 
1  only  those  individuals  who  are  authorized  to  enter  the  premises 
I  during  specified  time  frames.     The  device  is  also  suitable  for 
I  maintaining  customer  information  files,     or  any  other  ^plication 
I  where  small  amounts  of  information  must  be  quickly  entered  into 
I  a  data  processing  system. 
I  Accepts  2"  by  4"    HP  style  mag-cards.      (Similar  to  bank   cards.  ) 

Motorized   feeder  pulls   the  magnetic  card   across  the    four  channel 
I  read/write  head.   NEW  surplus,  original  cost  $2'00.  Full  documentation 


CONNECTORS 


(^    x""    1 


«fe 


^ 


"^ 


v3v?o 


your  choice 

DB25P 

male  plug&hood 

or 

0B25S  female 

^395 

Qty.  fe.  male  hd. 
10  3.45  2.45  I.IS 
2S  3.15  2.25  1.05 
100  2.15  1.90  .95 
500  2.25  1.(0  .85 
IK     1.97  1.37    .73 


Edge 
Connactors 


lasal  iolciir.12Sx.250 
iMiii  w/w  .125ciiit«rt 
tllafr  ialdertall.l40n» 
SPECIUS 
22/44  Kim  tytlit. ISO" 
25/50  iiildir  tab  .156" 
35/72  WidapMt  »/w.l5e 


GOLD 
100  PIN 

IMSAI/ALTAIR 

•3.95  3/»  9.00 
»4.95  3/«13.0O 
tS.95  3/>lS.0O 


«1.95  3/15.00 
41.09  3/42.00 
41.95  3/45.00 


100  Mother  Board 


HEXADECIMAL  KEYBOARD 

Maxl-Switch  hexadecimal  keyboards  are  dsalgned  lor        1^3^495 
microcompulor  systems  Ifial  roquKe 4-bll  oulput  _^3~c" 

■  inslandardhBxcode.  *"^  ' 

Each  assembly  consists  of  iGhemistl 
cally  seated  roed  switctiea  and  TTL  '"ono^ 
shot"  debounce  circuliry. 
Rellabte  low  tricllon  acatal  resin 
plurtgers  are  credited  (or  the  smooth 
operation  and  long  IKa  ol  Itila  premium 
keyboard. 
Requires  single  +5  volt  supply. 


'24.88 


KEYBOARD 


iim   oni   nandoa   numeric 


rNnKL43 

Evan  If  we  havt  to  {iv«  them 
iway,  wcra  going  to  ship  mora 
43's  in  1979  than  th«  aggrafitt 
of  all  our  competitors. 

Model  43AAA     TTL) 
EACH  3  10  25 

»925.       875.    850.      825.  _., 

RS-232  Interface^K"  Add*79.oo     %h^n*n  '  J^J  '^  I 


DISKETTES 


VfckrKci^itn    APPLE/TRS-80 
VSrOaTim.  Mini  -  Soft  sect 


sector 


Apple 
Owners: 


TEN  KEY 

Data  Entry  Pad 


^79.50 

Plugs  (iirectly  into  you  Apple  II. 
Allows  you   to  enter  numerics, 
punctuation  and  upper  case  alpha 
characters,    all  from  the  data 
entry  pad.     Sold  assembled  in 
walnut  finished  enclosure. 


SPECiPL 


APPLE  II 

IBK  MEMOR' 

COLOR  •  GRAPHICS*  SOUND 

$1024 

PLUS  SHIPPING 


Ratall.... 


TENSill      P--_laaal£        Certified  Digital 

-^^  SCOtCn    CASSETTES 


t]  Shugart  Associates 


50  + •335 


Diskettes 

8  inch  Soft  (IBM) 
8  inch  32  sector 
Mini  Soft  sec. 
Mini  10  sector 
Mini  16  sector 


Won't  drop.  BIT! 


CALIFORNIA 
INDUSTRIAL 

is  an 

AutMriiad 

Dealer  of 

Scotch  Brand 

Dataproducts 


MEMDHV 


SA800-R  Floppy  Disk  Drive 

The  most  cost  effective  way  to  store  data  proc- 
essing information,   when  random  recall  is  a 
prime  factor.      The  SA800  is  fully  compatible 
with  the  IBM  3740  format.     Write  protect  cir- 
cuitry,  low  maintenance  &   Shugart  quality. 


»a^g.5o 


CALIFORNIA  DIGITAL 

16BiT8086 
S-100  CPU  Board 

Directly  addresses  one  megabyte. 
8  bit  unidirectional  &   16  bit  bi- 
directional.    4K  of  static  memory 
is  supplied  on  board.     $650.  00 


DiqiCAST 
A/V-lOO 

R.K  MODULATOR 

CAAAC^^'^S'^c^st   both 
^^f,*^ audio  and  vidio 
on  your  existing  color       j 
television.    Recommend-   | 
ed  for  the  Apple  II. 


TRS-SOSf 
APPLE  II     _    _ 

16k  memory  (8)4116's 


•  As  you  may  be  aware,  publishers 
require  advertisers  to  submit  their 
ad  copy  60  to  90  days  prior  to  "press"  __, 

date.    That  much  lead  time  in  a  volatile  market  place, 
such  as  memory  circuits,    makes  it  extremely  difficult 
to  project  future  cost  and  availability. 
To  obtain  the  best  pricing  on  memory  we  have  made 
volume  commitments  to  our  suppliers,  which  in  turn 
affords  us  the  opportunity  to  sell  these  circuits  at  the 
most  competitive  prices.     Please  contact  us  if  you 
if  you  have  a  demand  for  volume  state  of  the  art  mem- 
ory products. 

STATIC  1-31     32-99    100-5C  -999        1K+ 


21L02  450nS. 

1.49 

1.19 

1.05 

.95        .89 

2IL02  250nS. 

1.69 

1.49 

1.45 

*             * 

2114  lKx4  450 

6.95 

6.50 

6.  25 

6.00       5.75 

2114  lKi4  300 

8.95 

8.50 

8.00 

*             * 

4044  4Kxl  450 

5.95 

5.50 

5.00 

*             + 

4044  4Kxl  250 

9.95 

9.50 

9.00 

*             * 

4045  lKic4  450 

8.95 

8.50 

8.00 

*             + 

4045  lKx4  250 

9.95 

9.50 

9.00 

+             + 

5257  low  pow. 

7.95 

7.50 

7.05 

6.75      6.45 

SPECIAL  CIRCUITS 

Z80A  4  MHz. 

24.  95 

AY5-10I3AUART       4.95 

8080A  CPU 

9.95 

Floppy  Disc  Controllers 

8085 

22.  50 

WD  1771 

single  D.  39.  95 

8086  Intel  16  bits 

* 

WD  1781 

Double  D  65.00 

TMS9900  16  bits 

49.95 

WD1791  IVD3740      * 

E  PROMS  1-15  16-63  64+ 
1702A  2K  4.95  4.50  4.00 
2708  8K  .').95  9.50  9.00 
27165vl6K  49.95  45.00  42.50 
2532       32K        ♦  »  » 


PORTABLE  DATA  ENTRY  SYSTEM 


These  used  data  terminals  were  originally  designed  for  chain  store  inventory  con- 
trol and  order  entry  systems.     The  operator  enters  the  inventory  control  number, 
merchandise  on  hand  and  the  unit  price.     After  all  pertinent  data  has  been  entered  into 
the  recorder,  the  main  warehouee  is  telephoned,  the  handset  is  placed  in  the  acoustic 
ccRipler  and  all  the  recorded  information  is  transmitted  back  to  the  master  computer. 
With  a  little  imagination  and  one  of  these  portable  entry  systems,  you  should  be  able 
to  exchange  programs  and  computer  information  with  associates  across  the  country. 
Ail  units  were  removed  from  service  in  working  condition.     Original  cost  $2,500, 
Each  system  comes  complete  with:  ^  / 

■Portable  Cassette  Drive  Unit  "Five  Gould  "D"  NiCads  "0825  Cable 

•Removable  Entry  Keyboard  "Acoustical  Coupler  BShoulder  starp 

with  LED  Display  "Battery  Charger 


Si8S  .81 .73  .66  I 
SPOT  Minlaiun  Toggles 

7101  C&K       ON -NONE  ON 

7107  jbt    0N-0FF(mnt.0N>  I 

7108  CK   ON-<moment.ON> 

Rocker  JBT DPDT 

Rotary  3P-4Pos. 

Rotary  3P-6-P05. 

Push  B  (N.OJ    S.39ea.  4/$l 


DIP  Switch 


■Full  Documentation 


DISCOUNT  ' 


i 

It's  no:  offen  thai  California  Digital  ven- 
turt'S  into  Ihe  distribution  of  consumer  pro- 
ducts,   but  we  have  resently  come  accroaa 
product  that  appL-ars  so  unique  that  we  just  had  to  add  il 
!■  product  line.      This  is  the  System  X-10  manufactured 
by  the  B SR  turntable  company.     This  space  age  system  will  re- 
motely control  any  light  or  appliance  in  your  home  or  office.      Command  sig- 
nals are  transmitted  from  the  command  console  over  your  existing  wiring. 
From  your  bed  or  easy  chair  you  can  cwitrol  up  lo  16  different  electrical  de- 
vices inside  and  outside  your  home.     U  se  the  System  X-10  to  control  your 
stereo,  television  or  any  light  fixture  on  the  premises. 

The  basic  sampler  package  comes  complete  with  command  console,   battery 
operated  ultrasonic  controller,  one  each  of  the  appliance  module,   lamp   mod- 
ule £ind  wall  switch.     The  basic  paclcage  is  priced  at  only  $a8.50     Additional 
modules  are  available  for  S13.  95  each. 


UJire  UfQp  Center 


IC  SOCKETS 


plj 

Wire  wrip 
•1.  25     SO 

Imr  profile 
•a.  25   50 

1 

17- 16  15 

14 

37<3G    35 

18  17  16 

1< 

38  37   36 

19  18  17 

24 

99  93    as 

36  35  34 

40 

109  155  139 

63  60  58 

S2S.95  -y 


50ft. 

'.98 


KYNARSi!^ 

500    1,000    11,000 
59.    SIS.     SIOS. 


(213)679-9001 


Circle  39  on  inquiry  card. 


All  nit-rt:hmidisi-  -snhl  bv  Cai  i  (nrni.i  l)i^U;i, 
Sorry,  no  CCJD's.  tJrdt.-r.s  an-  sliippiMi  I  Iv 
(.California  resid^-nls  add  G%.  Foreign  ori 
Cirdurs  over  $2:t.  when  accotitpaniuil  by  pi 
;u  our  ('xiJL'ns.'.     Oibt'rwl.sf,-,    pleii.sc  adfl  ^'. 


7400  TTL 


5N7400N 
SN74D1N 
SN740ZN 
SN7403N 
SN74CWN 
SN740SN 
SN7406N 
SN7407N 
SN7408N 
SN740M 
SN7410N 
SN7411N 
SN7412N 
SN7413N 
SN74I4N 
SN741SN 
SN7417N 
SN7420N 
SN7421N 
SM7423N 
SN7423N 
SN74Z5N 
SM7426N 
SN7427N 
SN742W 
SN743W 
SN743ZN 
SN7437N 
SN7438N 
SN7439N 
SN7440N 
SN7441N 
SM7442N 
SN7443N 
SN7444N 
SN744SN 
SN744eN 
&N7447N 
SN7448N 
SN7450N 
SN7451N 
SN7453N 
SN7454K 
SN74SSA 
SN7460N 


CD4000 
C04001 
CD4002 
CD4006 
CD4007 
CO4009 
CD4010 
C0401I 
CD4012 
CD4D13 
C04014 
CD401S 
CO4016 
CD40I7 
CD40I8 
C04019 
CO4020 
C0402t 
CD4022 
CD4023 
CO4024 
CD4025 
CD402e 
CO4027 


74COO 
74C02 
74C04 
74C08 
74C10 
74C14 
74C20 
74C30 
74C42 
74C48 
74C73 
74C74 


7aMG  1.75 

LM106H  .99 

LM300H  .BO 

LM30ICN;H  .35 

LM302H  .75 

IM304H  1. 00 

LM3D5H  .60 

LM307CN/H  ,05 

LM30eCN/H  1 .00 

LM309H  MO 

LM30E)K  1.25 

LM310CN  t.16 

LM3l1N/ri  .90 

LM3t2H  1.9S 

LM317K  650 

LM3tSCN;T1  1.50 

LM319r4  1.30 

LM320K-5  1.35 

LM320K-5,2  1.35 

LM320K-1Z  1.35 

LM320K-15  1.35 

U>I320K-1B  1.35 

IM320K-24  1.35 
LH320T-5 
LM320T-5.2 
LM320T^ 

LH320T-IZ  1,25 

LU320T-15  1.25 

LM320T-18  1.2S 

LM320T-24  1.25 
LM323K-5 
LM324N 
LM339N 

LM340K-5  1.35 

LH340K-6  1.3S 

LM340K-8  1.35 

LM340K-12  1.35 

LM340K-15  1.35 


1.25 


5.« 


74LS00 
74LS01 
74LS02 
74LSQ3 
74LS04 
74LS0S 
74L£08 
74LS09 
74lStO 
74LS1 1 
74LS13 
74LS14 
74LS15 
74LS20 
74LS21 
741S22 
74LS28 
74LS27 
741528 
74LS30 
74LS32 
74LS37 
74LS40 
74LS42 


,29 


SN7470N 
SN7472N 
SN7473N 
GN7474N 
SN7475N 
SN7476N 
SN7479N 
SN74aQN 
SN74a2N 
SN7483N 
SN74B5N 
SN74B6N 
SN7489N 
SN7490N 
SN7491N 
SN7492N 
SN7493N 
SN7494N 
5N7495N 
SN7496N 
SN7497N 
SN7410ON 
SN741D7N 
SN7410gN 
SN74116N 
SN74121N 
SN74122N 
SM74123N 
SN74125N 
SN74126N 
5N74132N 
SN74I36N 
5N74141K 
SN7414ZN 
SN74143N 
SN74144rj 
SN74t4SN 
SN74147N 
SN74148N 
SN74150N 
SN741G1N 
SN74152N 
SN741S3K 
SN74154N 
SN741S5N 
5N741S6N 
SN741S7N 


C/MOS 


CD40Z8 
C04029 
C04030 
CO4035 
CD404D 
CD4041 
CD4042 
C04043 
C04D44 
CO4046 
CD4047 
CO404S 
CO4049 
CD4D50 
CO4051 
C04053 
CO4056 
CEM059 


74C00 


74085 
74CO0 
74C93 
74C95 
74C107 
74C151 
74t:i54 
74C157 

74cieo 

74£6I 


2.90 
3.00 
2.15 


LINEAR 

LM340K-18  1.35 

LM34DK-24  1.35 

LM340T-5  1.25 

LM340T-6  1.25 

LM340T-8  1.25 

LM34aT-12  1.25 

LM34DM5  1.25 

LM340T.ia  1.25 

LM340T-24  1,25 

LM358N  1.00 

LM370N  1.95 

LM373N  3.25 

LM377N  4.00 

LM3B0N  1.25 

LM380CN  .99 

LM381N  1.79 

LM382N  1.79 

NES01N  8.00 

NE510A  E.OO 

NE529A  4.95 

NE531H;V  3.95 

NE536T  6.00 

NE540L  E.OO 

NE544N  4.95 

NE550N  1.30 

NE55SV  .39 

NE556N  .99 

NE560B  5.00 

NE56tB  5,00 

NE562B  S.OO 

NE5G5N/H  1.25 

NE566CN  1.75 

NE567V/H  ,99 

NE570N  4.95 

LM703CH/H  .69 

LM709N/H  .29 


74LS00nL 

74LS47 

.89 

74LS51 

?fl 

74LS54 

.29 

74LS55 

,29 

74LS73 

45 

74LS74 

.45 

74LS75 

.59 

74LS76 

-45 

74LS78 

49 

74LS83 

.69 

741565 

ITS 

74L£B6 

.45 

74LS90 

.59 

74LS92 

,75 

74LS93 

,75 

74LS95 

.99 

74L^ 

1.15 

74LS107 

.45 

74LS109 

.45 

7415112 

.45 

74LS123 

1.25 

74LS125 

.89 

74LS132 

,99 

74LS136 

.49 

SN741&0N 
SN741Q1N 
5N74162N 
SN74163N 
SN74164N 
SN741B5N 
SN74166N 
SN74167N 
SN74170N 
SN74172N 
SN74173N 
SN74174K 
SN74175N 
SN74176N 
SN74177N 
SN74179N 
SN741BOH 
8N74181N 
SN74t62N 
SN74184N 
SN74185N 
&N7418eN 
SN7418SN 
SN74190N 
SN74191N 
SN74192N 
SN74193N 
SN74194N 
S(I74195N 
SN74196N 
SN74197N 
SN7419aN 
SN74199N 
5N74S200 
SN74251N 
SN74279N 


SN74284N 
SN74265N 

Sr474365N 
SN743e6N 
SN74367N 
SN7436SN 
SN743gON 
&N743g3N 


CO4070 

CO4071 

CD4072 

CD4076 

CD40ei 

C040e2 

CD4033 

CD4098 

MC1440g 

MC14410 

MC14411 

MCl44t9 

MCI  4433 

MCI  4506 

MC14507 

MCI  4562 

MCI  4583 

C0450e 

C04510 

CW5I1 

CD4515 

C0451B 

CO4S20 

C045B6 


74Ct63 
74C164 
74C173 
74C192 
74C193 
74C195 
74C322 
74C923 
74C925 
74C926 
80C95 
60C97 


1,50 


LM710N  .79 

LM711N  39 

LM723N/H  .55 

LM733N  1.00 

LM739N  1.19 

LH741CN/H  .35 

LM741-14N  .39 

LM747N;H  .79 

LM748N/H  .30 

LM1310N  2.95 

LU1458CN/H  .50 

MCHeSN  1.39 

MC1489N  1.39 

LMI496N  .95 

LM1556V  1.75 

MC1741SCP  3,00 

LM2inN  1.95 

LM2901N  2.eS 

LM3053M  t.50 

LM3065N  1.49 
LM39a0N(3401).49 

LM39n5N  .89 

LM3909N  1.25 

MC555av  ,59 


LM75450N 

7545ICN 

7&452CN 

75453CN 

75454CN 

75491 CN 

75492CN 

75493N 

75404Cf4 

RC4136 

RC4151 

RC4194 

RC41K 


.49 


7415138 
74L5139 
74L5151 
74LS155 
74LS157 
74LS160 
74LS161 
74LS162 
74LS1S3 
74LS1B4 
74LS17S 
74LSI81 
7415190 
74LS19J 
74LS1B2 
74LS193 
74LS104 
74L519S 
74L5253 
7415257 
74LS2B8 
74L5260 
74LS279 
74LS3fl7 
7415368 
74LS670 


ML 


EXCITING  NEW 

JE600  HEXADECIMAL 
ENCODER  KIT 


KITS      "'B""' 

Thermometer  Kit 


'Pfrn 


FEATURES: 

•  Full  8  bit  lalctHHl  output  lot  micio- 
processor  use 

•  3  User  Defifis  keys  witti  orw  tteing  bl- 
siatHe  operation 

•  Detwuncfl  atcuit  piovided  for  all  19 
kevs 

•  LED  leadaul  to  verify  entites 

•  Easy  Interfacina  wilt)  standard  16  pin 
1C  connector 

•  Only  -I-5VDC  required  tor  aperalions 
FULL  8  BIT  UTCHED  OUTPUT— 19  KEYBOARD 

Tlie  JE600  Encoder  Keyboard  provides  two  sepacate  liexarlecimal 
digits  produced  from  sequential  key  entries  to  allow  direct  prog- 
ramming loi  8  bit  mlcroprocossoi  or  8  bit  memory  circuits.  Tliiee 
(3)  aOdillonal  keys  are  piovided  lor  usei  operations  witn  one  having 
a  bistable  output  available.  The  outputs  aie  iaiched  and  monitored 
wnti  LED  readouts.  Also  included  Is  a  key  emry  stiobe. 

JE600 $59.95 


■  Duel  tenfori-fwltchlng  control  for  In- 
door/outdoor or  dual  monitoring 
•  Continuous  LED  .8"  ht.  diiplav 
■Ranoo:  -ACF  to  199^  /  -40*^  to  lOOt 
■Accurocy:  IT'nomlnal 
•Set  for  FahrenhGii  or  Celsius  reading 
■Sim.  walnut  case  -  AC  wall  adaptsr  incl. 
■sua:  3-V4"Hx6-5/8"Wx1-3/8"D 


JE300 $39.95 


DISCRETE  LEDS 


.200-  dia. 
XC556R    red 
XCSS6G    green 
XC5MY    yellow 
XC556C    char 

.200-  dll. 
XC22R      red 


XC22G 
XC22V 


green 

yeJiow 

.170-  dll. 


■i;si 

4;S1 

4/S1 

S/S1 
4/S1 
4«1 


MV108     red 

.089- dll. 

MV50      red  6fl 

INFRA-RED  LED 

1/4"x1/4"x1/16-|lll 
5f$1 


.120-  dll. 
XC2CI9R    red 
XC20gG    flreen 
XC209V    yellow 

.109-  dll. 
XCS26R    red 
XC526G    green 
XC526Y    yellow 
XC526C    clear 

.100-  dia. 
Xcnifl    red 
XC11IG    green 
XCI11Y    yellow 
XCI11C    deer 


5/S1 
4/JI 

4«1 

5/S1 
4/J1 
4/11 
4/J1 

5/$1 
4/J1 
4/S1 
4/S1 


TIMEX  T1001 

LIQUID  CRYSTAL  OISPUV 
CLASS  II 

FIELD  EFFECT 


4  DIGIT  -  .5"  CHARACTERS 
THREE  ENUNCIATOHS 
2.00'  X  1.20"  PACKAGE 
INCLUDES  CONNECTOR 

TIOOI-Trinsmistlve  $7.95 

TIOOIA'Rellecllvi  8.25 


DISPLAY  LEDS 


TYPE 

MAN1 
MAN2 
MAN  3 
MAN4 
MAN7G 
MAN7Y 
MAN  72 
MAN  74 
MAN  82 
MAN  84 
MAN  3620 
MAN  3630 
MAN  3640 
MAN  4610 
MAN4M0 
MAN  4710 
MAN  4730 
MAN  4740 
MAN  4810 
MAN  4840 
MAN  6610 
MAN  6630 
MAN  6640 
MAN  6650 
MAN  6660 
MAN  6680 
MAN  6710 


POUBriY  I 

Common  Anode -red 
5  X  7  Dot  MatrU-rod 
Common  Cattiode-red 
Common  Cadi  ode -red 
Common  Anode-green 
Common  Anode -yellow 
Common  Aiwde-red 
Common  Cattiode-red 
Common  Anode -yellow 
Common  Cathode -yellow 
Common  Anode -orange 
Common  Anode-orange  ±  1 
Common  Caliiode-oiange 
Common  Anode-orange 
Common  Cathode -orange 
Common  Anode-red 
Common  Anode-red  *  1 
Common  Cathode-rsd 
Common  Anode -ye  How 
Common  Cathode -yellow 
Common  Anode-orange-D.D 
Common  Anode -oianoe  -  1 
Common  Cathode-orange-D,D.  . 
Common  Cathode -orange  n.  1    . 
Common  Anode-orange 
Common  Cathode -orange 
Common  Arode-fed-D,0. 


TYPE 

MAN  G730 

MAN  6740 

MAN  6750 

MAN  6760 

MAN  67  SO 

DL70I 

01704 

OL707 

DL72B 

0L741 

OL746 

DL747 

0L749 

DL750 

DL33B 

FND70 

FN035B 

FND359 

FNDS03 

FND5a7 

5082-7730 

HDSP-3400 

HDSP-3403 

5062-7300 

5082-7302 

5082-7304 

5062-7340 


POLARITY 

Common  Anode-red  2:  1 
Common  Cathode  -  red -D.D. 
Common  Cathode -red  s  \ 
Common  Anode -red 
Common  Cathode -red 
Common  Anode-red  =  1 
Common  Cathode-red 
Common  Anode -red 
Common  Cathode-rsd 
Common  Anode-ted 
Common  Anode-red  ii  1 
Common  Anode -ted 
Common  Camode-red  *  1 
Common  Cathode -red 
Common  Cathode -red 
Common  Calhode 
Common  Calhode  ±  1 
Common  Cathode 
Common  C3inode(FN0500) 
Common  Anode  {FND510) 
Common  Anode -red 
Common  Anode-red 
Common  Calhode  red 
4x7sol.  Otgii-RHOP 
4  X  7  SqI  Dlglt-LHDP 
Oveirange  Character  (:r1) 
4  X  7  Sgl.  Dioll-Hexadedrrul 


RCA  LINEAR 


CA3013T 

CA2023T 
CA3035T 
CA3039T 
CA304eN 
CA3a59N 
CA3060N 
CA308OT 
CA30S1N 


M5  CA30e2N 

2.56  CA30e3N 

2.48  CA3086N 

1,35  CA3089N 

1.30  CA3130T 

3.25  CA31407 

3,25  CA3160T 

,85  CA3401N 

2,00  CA36D0N 


3,50 


a  pin  LP  .117 

14  (tin  LP  ,20 

16  pin  LP  .22 

18  pin  LP  .29 

20  pin  LP  .34 

14  pin  ST  $.27 

16  pin  ST  .30 

16  pin  ST  .35 

24  pin  ST  .49 


IC 
25-49 


CALCULATOR 
CHIPS/DRIVERS 


MM5725 

S2.95 

MM5738 

2,95 

0M8864 

2.00 

DM8865 

1,00 

0M8887 

.75 

DMBBe9 

,75 

9374  7  seg. 

C,A  LED  driver 

150 

CLOCK  CHIPS 

MOTOR 

MM5309 

S4,95 

MC14QaL7 

MM5311 

4.95 

MC1408L6 

Mf,153l2 

4.95 

MC143gL 

MM53I4 

4.95 

MC3022P 

MMS3I6 

6,95 

MC3061P 

MM53ie 

9,95 

MC401 6(744 16] 

MM5369 

2.95 

MC4024P 

MM5387n99eA 

4.95 

HC4D40P 

MM5S41 

9,95 

MC4044P 

$.30 


SplnSG 

14plnSQ 
IfipfnSG 

IB  pin  SG  ,s 

e  pin  WW  t,3' 

10  pin  WW  .4! 

14  pin  WW  .3! 

16  pin  WW  .4: 

IB  pin  WW  .71 


SOLOEHTAIL  —  LOW  PROFILE  (TIN)  SOCKETS 

50-100 '  1-24 

22  pin  LP  ?  .37 

24  pin  LP      .38 

25  pin  LP  .45 
36  pin  LP      .60 

SOLDERTAIL  STANDARD  (TIN)  «  P*"  LP      63 

28  pin  ST  S  ,99 

36  pin  ST     1.39 

40  pin  ST     1.59 

SOLDERTAJL  STANDARD  (GOLD) 

24  pin  SG  S  .?0 

ZepinSG  1.10 
36pinSG  IBS 
40pinSG     1-75 


WIRE  WRAP  SOCKETS 
(GOLD)  LEVEL  #3 


22  pin  WW  S  .95 
24  pin  WW  1.05 
28  pin  WW  1  40 
36pinWW  159 
40  pin  WW    1.75 


1/4  WAH  RESISTOR  ASSORTMENTS  -  5% 


1.2K 
3JK 


I50K 
5  ea.    390K 


to  OHM  12  OHM  IS  OHM  t8  OHM  22  OHM 

27  OHM  J3  0HM  39  OHM  47  OHM  56  OHM 

68  OHM  a?  OHM  100  OHM  120  OHM  150  OHM 

180  OHM  220  OHM  270  OHM  330  OHM  390  OHM 

170  OHM  560  OHM  680  OHM  820  OHM  IK 


N  PCS  $1 .75 

80  PCS  1 .75 

50  PCS  1 .75 

50  PCS  1 .75 

BO  PCS  1.75 

60  PCS  1 .75 

60  PCS  1.75 
ASST.  BR    lncludesResistQrAssortments1-7(350PCS.)       $9.95  ea. 


1,5K 

3.9K 


180K 
470K 


l.BK 
4.7K 


220K 
560K 

t.5M 
3.9M 


2.2K 

5.6K 


100K 
270K 


2.7K 


I2UK 
330K 
a70K 
2.2M 
5.6M 


$10.00  Min.  Order  -  U.S.  Funds  Only  Spec  Shesti  -  25^ 

Csltf.  Residents  Add  6%  Sales  Tax  1979  CaUlog  Available -Send  41^  stamp 

Pottaae— Add  SXpIusSI  Insurance  (It  desired) 

PHONE 

ORDERS 

WELCOME 

(415)  592-B097 


';979CATAtO^ 


ameco 


ELECTRONICS 


MAIL  ORDER  ELECTRONICS  -  WORLDWIDE 

1021  HOWARO  AVENUE,  SAN  CARLOS.  CA  94070 
ADVERTISED  PRICES  GOOD  THRU  AUGUST 


Ay-5-9100 

Ay-5-9200 

AY-S-9500 

AV-5-2376 

HD01SS 

74C922 


TELEPHONE/KEYBOARD  CHIPS 

Push  Biftlon  Tel«prione  Oiallflr 

Repertory  Dialler 

CMOS  Cbck  Generator 

Keyboard  Encoder  (68  l(eys) 

KayboanJ  Encoder  {t6  ItBysj 

Keyttoard  Enrodar  (16  treys) 


t14.9S 
14.95 
4.95 
14.95 
7.9S 
5.95 


ICM7CM5 
tCM7205 
ICM7267 
ICM7208 
ICM72a9 


ICM  CHIPS 

CMOS  Precision  Tlmar 
CMOS  LED  Slopwalch/Timer 
OsdIIalor  Controller 
Seven  Der^ade  Counter 
Clock  Generator 


24.95 
19.95 

7.50 
19.95 

8.95 


NMOS  READ  ONLY  MEMORIES 

MCM6S71  128  X  9  X  7  ASCII  Stiltled  with  Greek  13.50 

MCMe574  12S  X  9  X  7  Math  Symbol  S  Pictures  13.50 

MCMS575  126  X  9  X  7  Alphmumeric  Contrt>l  13.50 

Character  Generator 


MISCELUINEDUS 

TL074CN  Quad  Low  Noise  bl-lst  Op  Amp  2.49 

TL494CN  Svvllctllng  Regulator  4.49 

TL496CP  Single  Switchlno  Regulator  1.75 

11C90  Divldo  10/11  Prescaler  19.95 

95H90  Hl-SpeedOiviile  10/11  Prescaler  11.95 

4N33  Photo-Darllnoton  Opto-lsolator  3.95 

MK50240  Top  Octave  Freo.  Generator  17.50 

OS0026CH  SUhz  2-pnaso  MOS  dock  driver  3.75 

TIL306  .27- red  num.  display  w/integ.  kigic  chip      10.50 

MM5320  TV  Camera  Sync.  Generator  14.95 

MM5330  4ft  Digit  DPM  Logic  Block  (Spec'iall  3.95 

LD110/111  314  Digit  Am  Converter  Set  25.00/set 


UTRONIX  ISO-UT  1 

Photo  Transistor  Opto-lsolator 
(Same  as  MCT  2  or  4N2S) 


2/990 


SN  76477 

SOUND  GENERATOR 
Generates  Complex  Sounds 
Low  Power  -  Programmable 

3.95  each 


TV  OAME  CHIP  AND  CRYSTAL 

AV-3-8500'1  and  2.01  MHZ  Crystal  (Chip  i  Crystal     ..    -^  /       t 

Includes  scate  display.  6  games  and  select  angles,  etc.,7 .  95/S6t 


$8.40 
4.40 
4.40 
1.55 


XR205 
XR2ia 
XR216 
XR320 

XR-L555  1.50 

XR555  .39 

XR556  .99 

XRS67CP  .99 

XR567CT  1.25 

XR1310P  1.30 

XR1468CN  3.85 

XR148S  1.39 

XR1489  1.39 


EXAR 

JEZ206KA  14.95 
JE2206KB  19.35 
xniSOO  3.20 
XR2206  4.40 
XR2207  3.85 
XR2208  5.20 
XR2209  1.75 
XR221t  5.25 
XR2212  4.35 
XR2240       3.45 


XR2242CP   1.50 
XR2264       4.25 


XR2SS6 
XR2567 
XH3403 
XR4136 
Xfl4151 
XFI4194 
XR4202 
XH4212 
XR455S 
XR4739 
XR4741 


3.20 
2.99 
1.25 
1.25 
2.85 
4.96 
3.60 
2.05 
.75 
1.15 
1.47 


TYPE 
1N746 
1N751 
1N75a 
IN7S3 

in;w 

1N757 

1N759 
m959 
1N96S 
1NS232 
1N5234 
1NS235 
1N5236 
1N524Z 
tN5245 
1N4S6 
IN458 
1N485A 
IN4001 


DIODES 

win  w 

3.3  400II1 

5  t  400m 

5.6  400(7) 

6,2  400m 

6.8  400in 

9,0  400m 

12.0  400m 

8.2  400m 

15  400m 

S,B  SOOm 

6.2  500m 

6,6  500m 

7.5  500m 

12  500m 

15  500m 


IBO         10m 
50  PIV  1  AMP 


PRICE 

4/1.00 
4/1.00 
4/1  00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
28 
28 


6/100 

6/1.00 
5/1.00 
12/1.00 


TYPE 
1N4002 
1N4003 
IM40O4 

1N40(» 
1N40C6 
1N4D07 
1N3600 
IN4148 
1N4154 
1N4305 
1N4734 
irH735 
IN4736 
1N4738 
1N4742 
1N4744 
1N11B3 
1Nt1S4 
1N1185 
1N11B6 
INUSa 


VOLTS     W 
100  PIV  1  AMP 
ZOO  PIV  1  AMP 
400  PIV  1  AMP 

600  PIV  1  AMP 
BOO  PIV  1  AMP 
1000  PIV  1  AMP 
50  200m 
75       10m 


35 


10m 


PWCE 
12/1,00 
12/1.00 
12/t  00 
10/1,00 
10/1,00 
10/1.00 

6/t  00 
15/1,00 
12/1.00 
1S/t,00 
26 
28 


)w 


12 
IS 

SO  PIV  35  AMP 
100  PIV  35  AMP 

ISO  PIV  35  AMP 
200  PIV  35  AMP 
400  PIV  35  AMP 


SCR  AND  FW  BRIDGE  RECTIFIERS 

C36D  15A$400V  SCH{2N1849) 

C38M  ^  (a  600V  SCR 

2N232B  I.BACQ'  300V  SCR 

MDA  980-1  yUdbCTJ  fW  BRIDGE  fttC 

MDA  980-3  12A#200V  FW  BRIDGE  R£C, 


SI  .05 
1.» 


ClOGBt 
MPSA05 

MPSA06 

TIS97 

TI598 

40409 

40410        . 

40673 

2N918 

2N2219A 

2N2221A 

2N2222A 

PN2222  PlasllC 

2N2369 

2N2369A 

MPS2369 

2N2484 

2N2006 

2N2907 

PN2907  Plastic 

2N2925 

MJE2955 

2H3053 


THANSI^TbRS 


5/1.00 
6/1,00 
6/1,00 


4/1,00 
2/1,00 
4/1  00 
5/1,00 
7/1.00 
5/1,00 
4/1.00 
5/1,00 
4/1.00 
4/1,00 
5/1.00 
7/1.00 
5/1.00 
125 
2/100 


2N3055 

MJE3055 

2N33g2 

2N3398 

PN3567 

PN3S68 

PN3569 

MPS3638A 

MPS3702 

2N3704 

MPS3704 

2N3705 

MPS3705 

2N3706 

MPS3706 

2K3707 

2N3711 

2N3724A 

aN3725A 

2N3772 

2143823 

2H39Q3 


CAPACITOR 


1,00 
5/1.00 
5/1.00 
3/1.00 
4/100 
4/1.00 
5/1,00 
5/1,00 
5/1.00 
5/1,00 
5/1.00 
5/t.OO 
S/I.OO 
5/1,00 
5/100 
5/1.00 
.65 


j;uo_ 


2N3904 
2M3905 
2N3906 
2IH013 
2N4t23 
PN4249 
PN4250 
2N4400 
2N4401 
2N4402 
2N4403 
2N4409 
2NSa86 
2NS087 
2N5088 
2fJS089 
2N512g 
PN5134 
PK513B 
2NS13g 
2NS2I0 
2N544g 


4/1,00 
4/1,00 

4/1,00 
3/1,00 
6/t,  00 
4/1.00 
4/1.00 
4/t.OO 
4/1.00 
4/1,00 
4/1.00 
6/1,00 
4/1,00 
4/t.OO 
4/1,00 
4/1,00 
5/1.00 
S/I.OO 
S/I.OO 
5/1,00 
S/I.OO 
3/1,00 


22  pi 

.05 

04 

47  p( 

.05 

04 

100  pi 

.05 

04 

220  pf 

,05 

04 

470  Dt 

.05 

(14 

lOVO: 

.OOlmt 

.12 

in 

.0022 

,12 

,10 

.0047mf 

.12 

10 

.Olrnl 

.12 

.10 

,28 

.v:i 

.I5/35V 

.28 

?,i 

,22/35V 

.28 

?.T 

,33/35V 

,2S 

?3 

.47/35V 

.28 

,?3 

.6a/35V 

.28 

.?A 

1,0/3SV 

,28 

.23 

10-9?      100- 
.04 


SO  VOLT  CERAMIC       PflRKICD 
DISC  CAPACITORS       U  U  11  ll  E.  11 


,00I;iF 
.0047^f 
.Ol^f 
-022^F 

.Wuf 

I  .V-t         .ViiJ  .l/iT 

100  VOIT  MTUR  RLM  CAPACtTORS 

-022m( 
,047mr 


'4"^ 


..V       ,«.         .22ml  ^33 

20%  DIPPED  TANTALUMS  I80LI01  CAPACITORS 

•'        I,5/35V  ,30 

2,2/2SV  ,31 
3,3/25V  31 

4,7/2SV  ,32 

6,8/25V  ,36 

15/25V  63 

HIHIAnjH?  ALUMuiini  ELECTROtmC  CAPACITOHS 


,47/50V 

1,0/SOV 

3,3/50V 

4,7/2SV 

10/25V 

10/50V 

22/25V 

22/50V 

47/25V 

47/50V 

100/25V 

100/50V 

220/25V 

220/50V 

470/25V 

1 000/1 6V 

2200/1 6V 


AxlilLwd 


-IS  .13 
"  .14 
.12 
.13 
.13 
.14 


.47/25V 
.47/50V 
1.0/16V 
1.0/2SV 
1.0/50V 
4.7/16V 
4,7/25V 
4,7/50V 
I0/16V 
10/25V 
10/SOV 
47/SOV 
100/16V 
100/25V 
100/SOV 
220/16V 
470/25V 


RiiHil  UmI 


240      BYTE  August  1979 


Circle  200  on  inquiry  card. 


|The  Incredible 
Pennywhistle  103" 


Transistor  Checker 


—  Completely  Assembled  — 
—  Battery  Operated  — 

The  ASI  Transistor  Checker  iscap- 
able  of  checking  a  wide  range  of 
transistor  types,  either  "in  circuit" 
or  QUI  of  circuit.  To  operate, 
simply  plug  the  transistor  to  be 
checked  into  the  front  panel 
socket,  or  connect  it  with  the  alli- 
gator clip  test  leads  provided. 
The  unit  safety  and  automaticallv 
Identifies  low,  medium  and  high- 
power  PNP  and  NPN  transistors. 
Size:  3*i"  x  6%"  x  2" 
"C"  cell  battery  not  Included, 

Trans-Check  S29.95  ea. 


Custom  Cables  &  Jumpers 


Part  No. 

DB25P-4.P 
DB25P-4.S 
DB25S-'1-S 


DB  25  Series  Cables 

Cable  Length    Connectors     Price 

4  R  2-DP25P  S15.95ea, 

4  Fl  1-DP25P/1-25S  $16,95  ea. 


4  11             2-DP25S  S17.95ea. 
Dip  Jumpers 

DJ14-1                  111.             1. 14  Pin  $1.59  ea. 

0J16-1                  111.             1-16  Pin  1.79  ea. 

DJ24-1                  1  n.             1-24  Pin  2.79  ea. 

DJ14-1-14             lit.             2-14  Pin  2.79  ea. 

DJ16-1-16             111.             2-16  Pin  3.19  ea. 

DJ24-1-24             1  II              2-24  Pin  4.95  ea. 
ForCuslomCablBSiJunipBrejSMjAME^^ 


CONNECTORS 

25  Pin-D  Submlniature 


DB2SP  (as  piclured)  PLUG  (Meets  RS232)  S2.95 

D825S  SOCKET  (Meets  RS232)  S3.50 

DB51226-1  Cable  Cover  (or  DB25P  or  DB25S      $1.75 

PRINTED  CIRCUIT  EDGE-CARD 

1S6  Spadng-rin-OouDk!  aead-Dul  —  Siluracied  Contacts  —  Fils  054  to  070  P.C  Caids 

15/30  PINS  (SoliJer  Eyelet)  $1.95 

IS/36  PINS  (Solder  Eyelet)  $2.49 

22/44  PINS  (SoWer  Eyelet)  $2.95 

50/100  (.100  Spacing)  PINS  (Wire  Wrap)  $6.95 

50/100  (.125  Spacing)  PINS  (Wire  Wrap)  R6ai-1$6.95 


4-Diglt  Clock  Kit 


•  Bright  .357"  ht.  red  display 

•  Sequential  flashing  colon 

•  \2  or  2^  hour  ooeration 

•  Extruded  aluminum  case  (Dlack) 

•  Pressure  switches  for  hours,  minutes  &  fiold  function; 

•  mciudGs  all  components,  case  and  wall  transformer 

•  Size:  3i«  X  IV4  X  IV4 


JE730    $14.95 


Jumbo 
6-Digit  Clock  Kit 


•  Four  .530"ht.  and  two  .300"ht.  common  anode  displays 

•  Uses  MM53M  clock  chip 

•  Switches  for  hours,  minutes  and  hold  functions 

•  Hours  easily  viewable  to  30  feet 

•  Simulated  walnut  case 

•  115VAC  operation 

•  12  or  24  hour  operation 

•  Includes  all  components,  case  and  wall  transformer 

•  Si;e:  6«.  X  SVe  x  IV* 


JE747    $29.95 


JE701 


•  Bright   .300  ht.  comm.  cath- 
ode display 

•  Uses  MM5314  clock  chip 

•  Switches  for   hours,   minutes 
and  hold  modes 

•  Mrs.  easily  viewable  to  20  ft. 

•  Simulated  walnut  case 

•  115  VAC  operation 

•  12  or  24  hr.  operation 
onents,  case  & 


wall  transfori 
•  Size;  6W"  x  3-1/8" 


IW 


6-Digit  Clock  Kit    $19.95 


EEMOTE  CONTROL 
TRANSMITTER  &  RECEIVER 


$19.98 


V: 


Digital  Stopwatch  Kit 

•  Use  Intersil  7205  Chip 

•  Plated  thru  double-sided  P.C.  Board 

•  LED  display  (red) 

■  Times  to  59  min.  59.59  sec.  with  auto  reset 

■  Quartz  crystal  controlled 

•  Three  stopwatches  in  one:  single  event,  split 
(cummulfltlve)i  taylor  {sequential  liming) 
Uses  3  penlite  batteries 

•Size:  1.5"  K  2.15"  x  .90" 


JE900  $39.95 


IVIICROPROCESSOR  COMPONENTS 


-808IU/S080A  SUPPORT  DEVICES- 
CPU 

8-Bit  InpJt/OuipuI 

Priority  Inlerriipl  Conirol 

Bl-DirecUonal  Bus  Driver 

Clack  Gsneraior/Drrver 

Bus  Driver 

Systam  Conirol  16 r/Bus  Drfvef 

System  Controller 

Prog.  Comm.  1/0  {USAflTl 

Prog   Inlflfval  Timer 

Prog   Periph.  1/0  (PPI) 

Prog.  DMA  Contfoi 

Prog.  IrilBrrupl  Control 
— BBOO/eim  SOPPOHT  DEVICES — 

MPU 

UPU  witn  Clock  and  Ram 

tSSXB  Static  Ram 

Pertph.  Inter.  Adapl(MC6e20j 

Priority  Inlerrupt  Controlter 

1024XS  Bit  ROM  (UC68A30-BI 

Asynchronous  Comm.  Adapter 

Synchronous  Serial  Data  Adapt. 

0-600  t>ps  DiQital  MODEM 

2400  Dps  Modulator 

Quad  3-State  Bus  Trans.  [MC8T26) 


-MICROPHOCEtiSOH  MANUALS- 


M-ZSO  User  Manual 

M-COP1B02    User  Manual 
M-2650  Usfir  Manual 


$7.50 
7.50 
5,00 


-nOM'8  - 


2513(2140}  Character  Gener3lor(up|ier  case) 

2513(3021)  Character  Gene  rat  or  (lower  case) 

2516  Characler  Generator 

MM5230N  2048-Blt  Head  Onty  Memory 


19.95 
9.95 
10.95 


1101 
1103 


9,95 
12-95 
14.95 


MICROPROCESSOR  CHIPS— MISCELUNEOUS 

780{780C)       CPU  S19.9S 

ZeOA(780-1)    CPU  24.95 

CDP1802         CPU  19,95 

2BS0  MPU  19.95 

6502  CPU  11.95 

8035  8-Bit  MPU  w/clot*,  RAM,  1/0  lines         19-95 

P8085  CPU  19.95 

TMS9900JL     le-Bit  MPU  w/haiflwara,  multipfy 

S  divide                                                49,95 
SHIFT  REGISTERS 


2101(6101) 

2102 

21L02 

2111(8111) 

2112 

2114 

2H4L 

2114-3 

2114L-3 

StOl 

5280/2107 

7489 

74S20fl 

93421 

UP04t4 

(MK4027) 
UPD416 

(MK4116) 
TMS4044. 

4SNL 
TMS4045 
2117 


256X1 

1024X1 

256X4 

1024X1 

1024X1 

256X4 

256X4 

1024X4 

1024X4 

1024X4    ' 

1024X4 

256X4 

4096X1 

16X4 

256X1 

256X1 

4K 


MM500H 

MM503H 

MM504H 

MM506H 

UM510H 

MM5016H 

2504T 

2518 

2522 

2524 

2525 

2527 

2528 

2529 

2532 

2533 

3341 

74LS670 


Dual  25  Sit  Dynamic 
Dual  50  3it  Dynamic 
Dual  t6  3>l  Static 
Dual  100  Bit  Static 
Dual  64  Sit  Accumulator 
500/512  Bil  Dynamic 
1024  Dynamic 
Hex  32  Bil  Sialic 
Dual  132  Bit  Static 
512  Sialic 
1024  Dynamic 
Dual  256  Bit  Static 
Dual  250  Static 
Dual  240  Bit  Static 
Quad  BO  Bit  Static 
1024  Static 
Filo 


S.50      MM5262 


Dynamic 
Static 
Static 
Static 
Static 
Static  MOS 
Static  450nG 
Static  450ns  low  power 
'  Static  300ns 
Static  300ns  tow  power 
Static 
Dynamic 
Static 

Static  Tristate 
Sialic 
Dynamic  16  pin 

Dynamic  16  pin 

'  Static 

Sialic 

Dynamic  350ns 
(house  marked) 
Dynamic 


4.95 
2.95 

4.95 

9,95 
14.95 


I702A 

2716INTEL 

TMS2516 

(2716) 

TMS2532 

2708 

2716  T.I 


A-Y-5-1013     30KBAUD 


"Requires  3  vi 
5203  2WB 

6301il(7611)  1024 
6330-1(7602)  256 
82S23  32X8 

825115  4096 

a2SI23  32X8 

74166  512 

74168  256 

74S2B7  1024 


—  PROM'S 

fAMOS 
EPROM 
EPROH 
IS  single  +5V  power  supply 
EPflOM 
EPROM 
EPROM 


S5.95 
59.95 
49.95 


-5V,  -t-SV, 
FAMOS 

Trislate  Bipolar 
Open  C  Bipolar 
Open  Collector 
Bipolar 
TristalB 

TTL  Open  Collector 
TTL  Open  Colledoi 
Static 


■12V 


2,95 
3.95 
19-95 
3.95 


CONTINENTAL  SPECIALTIES 


Ptoto  Board  203 


^75.00 


Modal 
Numliaf 

PB'6 
PB-IDO 
PB-101 


LlWxH 

(Incheil 

6,0)14  5x1.4 

6.0  «  4.5x1.4 

6.0x4,5x1.4 


o  Board  203/* 

nlurti  a\  llif  Pe203  plui 

liDWUf   (uppiv  lleiihiliiv, 

\%  Rigulllid  SVQC  lupplr 

olicitioniiiPBiaS).  Hn- 

.H       ii.nK   upi'iK    'ISVOC   ind   -tS 

\m       VOC     D.SA     lupphn.     uih     w.in 

inttiniilv  ind  indFftndtnlly  idiuii. 

ibit  aulpul  vsliagi.  Rippit  ind  nsiit 

ol  •  ind  -15V  lupplitt.  tOmV  il 

a.2bA. 


9124.95 


LxWiH 
(Inches! 


Modsl 

Humbar  

PB-102  7.0x4,5x1,4 

Pe-103  9.0x6,0x1,4 

PB-1B4  9.8  X  8.0  X  1,4 


S44.9S 
SS4.9S 


THE  SINCLAIR  PDM35 


DC  VdIIi  (4  ranges) 

Range  ImVto  lOOOV. 

Accuracy  of  reading  1.0%:;:  1  count. 

Note;  lOMIl  mpul  impedance, 

AC  Volli|4a  Ili-SkHi) 

Range  IV  to  500  V. 

Accuracy  ol  reading  1.0%-  2  counts. 

DC  Current  (6  ranges} 

Range  1  n\  to  200  mA. 

Accuracy  ot  reading  1.0%;1  count. 

fJolfl  Man.  resolution  0.1  n.A 

Retlstance  (5  langei) 

Range   Hi  lo  20  Mil. 

Accuracy  Dl  rearting:  1.5%^  1  count 

Also  provides  5  junction-test  ranges. 

Oimentioni:  6  m  x  3  m  x  1  Vi  in 

Weight:  6'.^  oz 

Power  Supply:  9  V  battery  or 

Sinclair  AC  adapter  (Battery  not  inci,) 

Socliali:  Standard  4mm  tar 

resilient  plugs. 


carrying  wallet 


POM35:  Digital  IVIultimeter  .  .  .  $59.95 

(completely  assembled) 

PDM-AC:n7V  AC  Adapter  .  .  .         6.95 

PDM-DP: 

Deluxe  padded  carrying  case.  .   .         6.95 


JE200 


^ 


JE200  $14.95 


5V-1  AMP 
POWER  SUPPLY 

•Uses  LM309K 
*Heat  sink  provided 
*PC  Board  construction 
•Provides  a  solid  1   amp 

@  5  volts 
•Can  supply  up  to  ±5V, 

19V     and    ±12V    with 

JE205  Adapter 
•  I  n  eludes  components, 

hardware  &  instructions 
*Size:  3'/4"x5"x2"H 


100  MHz 
8-Dlgit 
Counter 


•  20  Hz-100  MHz  flange  ■  Four  power  sauces,  i.e, 

■  .B"  LED  Display  batlBries.  110  or  220V  with 

•  Crystal -con!  rolled  timebas^  cliarger   12V  wllh  auic 

■  Fully  Automatic  lighter  adapter  and  external 

•  Portable  —  completely  7.2-10V  power  supply 

sell  contained  MAX-100   CIO^  QR 

•  Size  —  1  75-  X  7.3B-  gH  OH .  »0 

ACCESSORIES  FOR  MAX  100: 

Mobili  Chargar  Ellminilor 

use  power  Irom  car  battery         Modal  100  —  CLA  S3. 95 
Chirgir/ElimlnitDr 

use  no  V  AC  Model  100  —  CAI  IS.9S 


REGULATED  POWER  SUPPLY^ 


JE205 


ADAPTER  BOARD 
-Adaptsto  JE200- 
±5V,±9Vand±12V 
•DC/DC  converter  w/ 
-^5\/  input 
•Toriodal  hi-speed 
switching  XMFR 
■Short  circ.  protection 
•PC  Brd.  construction 
•PiSSV-back  to  JE200 
board 
•Size:3%"x2"x9/16"h 

JE205        $12.95 


S10.00  Min.  Order  -  U.S.  Funds  Only  Spec  Sheets  -  25^ 

Calif.  Residents  Add  6%  Sales  Tax  1979  Catalog  Availabler  Send41^stamp 

Postege  — Add  5%  plus $1  Insurance  (if  desired! 


FHEE 

fi979  catalog; 


Jameco 
nssmnm 


PHONE 

ORDERS 

WELCOME 

(415)  592-8097 


MAfL  ORDER  ELECTRONICS  -  WORLDWIDE 

1021  HOWARD  AVENUE.  SAN  CARLOS.  CA  94070 
ADVERTISED  PRICES  GOOD  THRU  AUGUST 


$139.95 


Kll  Only 


The  PinnywhltHe  103  is  capable  of  recording  data  lo  and  from  audio  tapi  without 

critical  speed  requirements  'or  the  recorder  and  il  is  able  to  communicate  directly  with 

another  modern  and  terminal  tor  telephone  "hamming"  and  communications.  In 

addition.  11  is  free  ol  critical  adjustments  and  is  buili  with  non-precislon.  readily  available 

parts. 

DiU  Tfanimlitlon  Malhod Frequency-Shift  Keying,  lull-duplex  (hall-duplex 

seleclable). 

MMlmum  Data  Rata 303  Baud. 

Data  Formal  Asynchronous  Serial  (return  to  mark  level  required 

belween  each  chaiader). 
Rflcalvs  Chinnal  Fraijuanclai . .  .20?5  Hz  lor  space;  2225  Hz  tor  marti. 
Tiantmll  Ctiannal  FraquendBi  ,  .Switch  selectable:  Low  (normal)  ^  1070  space, 

1270  mart;  High  =  025  space.  2225  mark. 

Recelva  Senilllvlty ~46dbm  accousiically  coupled. 

Tram  mil  Laval  -15  dtim  nominal.  Adjustable  Irom  -6  dbm 

to  "20  dbm, 
Racalva  Frequency  Tolarance  ...Frequency  relerence  automatically  adjusts  lo 

allcw  for  operaiion  between  1SO0  Hz  and  2400  Hz. 
Digital  Data  Inlanaca EtA  RS-232C  or  20  mA  current  loop  (receiver  is 

oploisolated  and  non-poiai). 

Power  Raqulrtmenli  120  VAC.  single  ptiase.  10  Walts, 

Ptiyiical All  components  mount  on  a  single  5'  Oy  9" 

pri[ited  circuit  board.  All  components  included. 
Requires  a  VOM,  Audio  Oscillator,  Frequency  Counter  and/or  Oscilloscope  to  align. 


TRS-80 
16K  Conversion  Kit 

Expand  your  4K  TRS-80  System  to  16K.  Kit 
comes  complete  with: 

•  8  each  UPD416-1  (16K  Dynamic  Rams)  250NS 
'  Documentation  for  conversion 

TRS-16K  $75.00 


COMPUTER  CASSETTES 


.  6  EACH  15  MINUTE  HIGH 
QUALITY  C-15  CASSETTES 

.  RUSTIC  CASE  INCLUDED 
12  CASSETTE  CAPACITY 

.  ADDITIONAL  CASSETTES 
AVAILABLE  #C-15-$2,96ea 


a 


•  i. .  1  ,1  ;  CAS -6 
-"nV:-Vi  $14.95 

.     ^    ,.*.. [Caste  and  6  Cassettes) 


SUP  'R'  MOD  II 

UHF  Channel  33  TV  Interface  Unit  Kit 

Wide  Band  6/W  or  Color  System 

•  Converts  TV  to  Video  Display  tor 
home  computers,  CCTV  camera, 
Apple  II,  works  with  Cromeco  Daz- 
zler.  SOL-20.  IRS-80,  Challenger, 
etc. 

MOD  II  is  pretuned  to  Channel  33 
(UHF). 

*  Includes  coaxial  cable  and  antenna 
transformer. 


MOD  II 


$29.95  Kit 


Function  Generator  Kit 


'  PfovitJes  3  basic  waveforms: 
sine  triangle  &  squaie  wave 

•  Frequency  range  Ifom  1  Hz  lo 
100K  Hz 

•  Output  amplitude  from  0-volls  to 
over  6  volts  [peak  to  peak] 

«  Usesa12V supply ora^ev split 
supply 

•  Inci  chip   P  C   board,  compo- 
nents and  instructions. 

JE2206B    $19.95 


IDEAL  FOR  TRS  80 

"Plug/Jack  interlace  to  any 
computer  system  requiring 
remote  control  ot  cassette 
functions" 

The  CC100  controls  cassette 
motor  functions,  monitors 
tape  location  with  its  internal 
speaker  and  requires  no 
power.  Eliminates  the  plugging 
and  unplugging  of  cables  dur- 
ing computer  loading  opera- 
tion from  cassette. 


CASSETTE  CONTROLLER 


#CC-100 

$29.50 


63-K8y  Unencoded  Keyboard 


This  is  3  63-key,  terminal  keyboard  newly  manufactured  by  a 
large  computer  manufacturer.  It  Is  unencoded  with  SPST  keys, 
unattached  to  any  kind  of  PC  board,  A  very  solid  molded  plastic13 
X  4"  base  suits  most  application,  IN  STOCK    g29  95/8aGtl 


Hexadecimal 

Unencoded 

Keypad 

19-key  pad  includes  1-10  keys, 
ABCDEF  and  2  optional  keys  and  a 
shift  key.  $10.95/each 


~  Circle  201  on  inquiry  carij. 


BYTE  August  1979         241 


Circle  171  on  inquiry  card. 


COMPUCOLOR   lllSHEREN 


HERE  IS  A  SURPRISINGLY 
AFFORDABLE  COMPUTER 
THAT  MAKES  THE  COMPE- 
TITION LOOK  TWICE  11 

STANDARD  FEATURES 

*  13 "  COLOR  CRT 

*  SPECIAL  GRAPHICS  PKG. 

*  EXTENDED  DISK  BASIC 

*  MINI  DISK  DRIVE 

*  8K  RAM  MEMORY 

*  72  KEY  KEYBOARD 


PRICE  &  OPTIONS 

MODEL  3-  8K  USER  RAM- 1495 .oo 
MODEL  4-16K  USER  RAM -1695. oo 
MODEL  5-32K  USER  RAM- 1995.oo 
2nd  DISK  DRIVE  -400.oo 

EXPANDED  KEYBOARD  - 1 3  5  .oo 

FORMATTED  DISKETTE  -       5.oo 

MANY  PROGRAMS  AVAILABLE    * 


TO  ORDER 

SEND  CHECK  OR  MONEY  ORDER 
CALIF.  RES.   add  6%  TAX 
shipping  1%  all  orders 


HOLLYWOOD 
SYSTEMS 


CATALOG  -  50« 


9100  SUNSET  BLVD. 

SUITE  112 

LA.  CALIF.  90069 


r 


BECKIAN  ENTERPRISES 


All  Prime  Quality  —  New  Parts  Only 
Satisfactioii  Guaranteed 


EDGE  CARD  CONIMECTORS:  GOLD  PLATED.  INoI  Gold  Flash) 
BODY:  Nod  brittle,  Solvent  res.,  G.E.  Valox. 
CONTACTS:  Bifurcated;  Phos/Bronze:  Gold  over  Nicl<el. 
ABBREVIATIONS:  S/T  Solder  Tail;  S/E  Sold.  Eyelet; 

W/W  Wire  Wrap  3;  SW/W  Short  W/Wrap: 


PART  «  Description 

5010  50/100  S/T  ALTAIR 

5020  50/100  S/T  IMSAI 

5030  50/ 1  00  W/W  IMSAI 

5040  50/ 1 00  S/E  ALT/IMSAI 

5050  50/100  S/T  CROMEMCO 

1450  IMSAI  CARD  GUIDES 

.100"  Contact  Center  Connectors. 


1020 
1040 
1050 
1060 
1065 
1070 
1076 
1080 
1085 
1090 
1093 
1095 


1  3/26  S/E  Imsai  MID: 
25/50  S/E 
25/50  S/T 
36/72  W/W  Vector. 
36/72  S/T  Vector. 
40/80  S/E  PET 
40/80  W/W  PET 
40/80  S/T  PET 
43/85  S/E  Cos.ELF 
43/86  S/T  Cos.ELF 
43/86  S/T  Cos.ELF 
43/86  W/W  Cos.ELF 


POLARIZING  KEYS:  For  Above 
.156"  Contact  Center  Connectors. 

1550  6/-         S/E  PET,  Etc 

1560.         6/12     S/T  PET:NSC. 

1575  12/24  S/E  PET 

1  580  1  2/24  S/T  PET 

1  590  1  5/30  S/E  GRI  Keybd. 

1620  18/36  S/E 

1650  22/44  S/E  KIM, VECTOR 

1660  22/44  S/T  KIM, VECTOR 

1  670  22/44  W/W  KIM, VECTOR 

1690  36/72  W/W 

1710  36/72  S/E 

1720  36/72  S/T 

1730  43/86  S/T  Mot.  6800 

1  740  43/86  S/T  Mot.  6800 

1  760  43/86  W/W  Mot.  6800 

POLARIZING  KEYS:  For  Above 


.140 
.140 
.140 
.200 
.200 
.140 
.200 
.140 
.140 
.140 
.200 
.200 


.140 
.140 
.140 
.140 
.140 
.140 
.140 
.140 
.200 
.200 
.140 
.200 
.140 
.200 
.200 


2.10 
2.95 
3,00 
4.80 
4.00 
4.80 
5.00 
4.90 
5.00 
5.10 
4.95 
5.50 
0.10 

1.30 
1.36 
2.15 
2.10 
2.25 
2.40 
2.20 
2.00 
2.40 
3.90 
3.50 
3.30 
4.40 
4.35 
4.45 
0.10 


5-9 

10-24 

3.50 

3.30 

3.76 

3.50 

3.90 

3.70 

4.50 

4.25 

6.00 

6.75 

0.14 

0.12 

1.85 
2.75 
2.80 
4.60 
3,75 
4.50 
4.65 
4.60 
4.75 
4.85 
4.70 
5.20 
0.10 

1.10 
1.15 
1.95 
1.90 
2.05 
2.20 
2.00 
1.80 
2.20 
3.75 
3.30 
3.10 
4.16 
4.10 
4.25 
0.10 


1.75 
2.50 
2,60 
4.30 
3.50 
4.30 
4.35 
4.25 
4.50 
4,60 
4.45 
4.90 
0.10 

0.90 
0.95 
1.75 
1.70 
1.85 
2.00 
1.80 
1.70 
2.00 
3.50 
3.10 
2.90 
3.90 
3.85 
4.10 
0.10 


RS232  &    D'  TYPE  SUBMINIATURE  CONNECTORS: 


QUANTITY 


DE9P  Male 
DE9S  Female 
DEI  10963-1 
DA15P  Male 
DAI  6S  Female 
DA5121  1-1 
DAI  10963-2 
DB25P  Male 
DB25S  Female 
DB51212-1 
DB51226-1A 
DB1  10963-3 
DC37P  Male 
DC37S  Female 
DC1  10963-4 
DD60P  Male 
DD50S  Female 
DD51216-1 
DDl  10963-5 


2pc.  Grey  Hood 


Ipc. 
2pc. 


Grey  Hood 
Grey  Hood 


1  pc 
2pc 
2pc. 


Grey  Hood 
Black  Hood 
Grey  Hood 


2pc.  Grey  Hood 


Ipc.  Grey  Hood 
2pc.  Grey  Hood. 
D20418-2  Hardware  Sets 


1-4 

1.45 

1.93 

1.20 

1.95 

2.80 

1.25 

1.22 

2.20 

3.20 

1.30 

1.40 

1.35 

3.70 

4.90 

1.95 

4.40 

4.90 

2.30 

2.40 

0.75 


5-9 

1.35 
1.80 
1.10 
1.80 
2.60 
1.15 
1.10 
2.10 
3.00 
1.20 
1.30 
1.25 
3.60 
4.70 
1,85 
4.30 
4.70 
2.10 
2.20 
0.70 


10-24 

I.e.  SOCKETS.  GOLD. 

1.25 

WIRE  WRAP  3  TURN. 

1.70 

14  pin     $0.36  ea. 

1.00 

16  pin        0.38  ea. 

1.70 

2.40 

1.10 

1.06 

LC.  SOCKETS. 

1.90 

Dtp  Solder.  Tin. 

2.70 

14  pin     $0.1  5  ea. 

1.10 

16  pin       0.17  ea. 

1.20 

1.15 

3.35 

4.40 

8080  PRIME 

1.75 

$8.00  ea. 

4.10 

4.50  ■ 

1.90 

2.00 

2708  EPROMS  PRIME 

0.65 

$14.00ea. 

CONNECTORS  FOR  CENTRONICS  700  SERIES: 
Amhpenol  57-30360  For  Back  of  Centronics  '700'  Series; 

Price:  $9.00ea.  6  pes,     $7,50ea. 

WHISPER  FANS:  Excellent  for  Computer  cabinet  cooling.  Extremely  quiet. 
Dim.  4-3/4"  X  1-1/2"  thick.  U.L.  Listed.  JL:4  5^  10-24 

S22.00     $19.00     $18.00 
WRITE    FOR    LARGER    QUANTITY   DISCOUNTS.    DEALER    INQUIRIES  ARE 
WELCOME. 

WE  ARE  CONNECTOR  (EDGE  CARD)  SPECIALISTS.  IF  YOU  DO  NOT  SEE 
WHAT  YOU  NEED  IN  THIS  ADVERTISEMENT.  PLEASE  WRITE  US.  WE  WILL 
REPL  Y. 

TERMS:  Minimum  Order  $10.00:  Add  SI. 25  for  handling  and  shipping.  All  orders 
over  $25. 00  in  USA  and  Canada:  WE  PA  Y  THE  SHIPPING. 
NOTE:  CA  residents  please  add  6%  sales  tax. 

NO  C.O.D.  SHIPMENTS  OR  ORDERS  ACCEPTED. 

^A'^  ORDERS  TO  g^^j^^^^  Enterprises 

P.O.  Box  3089 
Simi  Valley,  CA  93063 


242       BYTE  August  1979 


Circle  30  on  inquiry  card. 


^ 


PRECUT  WIRE 


WIRE  WRAP  TOOLS 


#30  WIRE  KITS 

#1     $7.95  #2     $19.95 


250 

3" 

100 

472" 

250 

272" 

250 

5" 

250 

3V2" 

100 

5" 

500 

3" 

100 

572" 

100 

4" 

100 

6" 

500 

372" 

250 

6" 

500 

4" 

100 

672" 

250 

472" 

100 

7" 

#3 

$24.95 

#4    i 

^4.95 

500 
500 
500 
500 

272" 
3" 
372" 
4" 

500    472" 
500    5" 
500     572" 
500    6" 

1000  272- 
1000  3" 
1000  372" 
1000  4" 

1000  472" 
1000  5" 
1000  572" 
1000  6" 

Choose  One  Color  or  Random  Assortment: 
Red,  Blue,  Green,  Yellow,  White,  Orange,  Black. 


#26  Prices  on  Request 


«30  Kynar  stripped  1"  on  eacti  end.  Lengths  are  overall. 
Colors:  Red,  Blue.  Green.  Yellow,  Blacl<.  Orange,  White. 
Wire  packaged  in  plastic  bags.  Add  25iE/length  for  tubes. 


In. 

2'A 
3 

3VS 
4 

4'A      ■ 
5 

6 

6'/; 

7 

7 '4 
S 

8 'A 
9 

9V, 
10 

Addl.  In. 


100 


500 


1000 


5000 


1.04 

2.96 

5.16/K 

4.67/K 

1.08 

3.22 

5.65/K 

5.D6/K 

1.13 

3.46 

6.14/K 

5.46/K 

1.18 

3.20 

6.62/K 

5.87/K 

1.23 

3.95 

7.1 2/K 

6.25/K 

1.28 

4.20 

7.61/K 

6.62/K 

1.32 

4.48 

8.10/K 

7.03/K 

1.37 

4.72 

8.59/K 

7.43/K 

1.60 

5.37 

9.84/K 

8.48/K 

1.66 

5.63 

10.37/K 

8.91/K 

1.73 

5.89 

10.91/K 

9.33/K 

1.78 

6.15 

11.44/K 

9.79/K 

1.82 

6.41 

11.97/K 

10.19/K 

1.87 

6.76 

12.51/K 

10.62/K 

1.92 

6.93 

13.04/K 

11.05/K 

1.99 

7.26 

13.57/K 

11.48/K 

1.20/K 


HOBBY 

WIRE  WRAP  TOOL 


BW  630  (Back  Force)  $34.95 

BT  30  Extra  Bit  2.95 

BT  2628  #26  Bit    .  7.95 

Batteries  &  Charger  11.00 


INDUSTRIAL 
WIRE  WRAP  TOOL 

BW928 

BW  928BF  (Bacl<  Force) 
#30  Bit  &  Sleeve 
#26  Bit  &  Sleeve 
Batteries  &  Charger 


$49.95* 

52.95 
29.50 
29.50 
11.00 


ELECTRICAL  INDUSTRIAL 
WIRE  WRAP  TOOL 

EW  7D  $85.00* 

EW  7D  BF  (Back  Force)      92.90* 
#30  Bit  &  Sleeve  29.50 

#26  Bit  &  Sleeve  29.50 

"industrial  Tools  do  not  include  Bit  &  Sleeve 
k    Spring  Loaded  bit  on  Back  Force  models. 


i 


EDGE  CARD  CONNECTORS 

44  pin  Solder  Tail     $1.95        $17.50/10        ALLareGold 
OOpin  Solder  Tail    $3.95        $35.00/10        lOOpinarelMSAI 
00 pin  Wire  Wrap     $3.95        $35.00/10        spacing. 


n 


TT 


b 


r 

INTERCONNECT  CABLES 

^ 

RIbboncableconnectorsfor  connecting  boards  to  front  panels,  or  board  to  board.  | 

SINGLE  ENDED                   DOUBLE  ENDED                                                | 

14  pin      16  pin      24  pin       14  pin       16  pin 

24  pin 

6- 

1.24          1.34          2,05          2.24    .      2.45 

3.37 

12" 

133          1.44          2.24          2.33          2.55 

3.92 

24" 

1.52          1.65          2  63          2.52          2.76 

4.31 

48" 

1.91          2.06         3-40          2.91          3.17 

5.08 

OK  PRODUCTS 

WD  30 

soft 

Wire  Dispenser  Red,  White.  Blue. 

or  Yellow    $3.75 

WD-30-TRI 

Tfll  Color  Dispenser 

5.50 

R-30-TRI 

Refill  lor  TRI  Color 

3.75 

INS  1416 

14  &  16  pin  Insertion  Tool 

3.25 

MOS  40 

40  pi 

n  Insertion  Tool 

7.50 

EX-1 

10  Extractor  Tool 

1.49 

H-PCB-1 

Hobby  PC  Board 

4.99 

WSU30 

Hand  Wrap/Unwrap/Strip  Tool 

6.25 

WSU  30M 

Same  as  WSU30  virith  lutodified  Wrap 

7.50 

SOLDERLESS 
BREADBOARDS 
SK  10  $16.50 

2.2"  X  6.5" 


MB10 


$18.95 


SK10  mounted  on  board 
W74  Binding  Posts  & 
Rubber  Feet 


WIRE  WRAP  SOCKETS 

1-9    10-24    25-99     100-249 


8  pin" 

.40 

.36 

.34 

.31               .27 

14  pin* 

— 

.39 

.37 

.34               .32 

16  pin' 

— 

.42 

.40 

.36               .34 

18  pin" 

.70 

.60 

.55 

.50              .45 

20  pin 

.90 

.80 

.75 

.65               .62 

22  pin" 

.95 

.85 

.80 

.70              .65 

24  pin 

.95 

.85 

.80 

.70              .65 

25  pin  strip 

1.25 

1.15 

1.00 

.95               .90 

28  pin 

1.25 

1.15 

1.00 

.95              .90 

40  pin 

1.65 

1.45 

1.35 

1.20            1.10 

Gold  3-Level  Closed  Entry  Design 

■End  &  Side  Stackable 

2-Level  sockets  Available 

135  E.  Chestnut  St.  **5     Monrovia",  CA  91016   (213)357-5005 


Ordering  Intormatlon: 

•  Orders  under  $25  and  COD'S  add  $2 

•  AM  others,  shipped  Ppd  in  U.S.  via  UPS 

•  For  Blue  Label  (Air)  or  1st  Class,  add  $1 

•  We  accept  Visa  &  Maslercharge 


Catalog  available  on  request. 


LOGIC  PROBE 

PRB-1 

$34.95, 


•  Compatible  with  all 
Logic  Families 

•  10  Msec  pulse  response 


Dealer  Inquiries  Invited 


Circle  298  on  inquiry  card. 


BYTE  August  1979         243 


Circle  387  on  Inquiry  card. 

WAMECO 

THE  COMPLETE  PC  BOARD  HOUSE 
EVERYTHING  FOR  THE  S-100  BUSS 

*  FPB-1   FRONT  PANEL  BOARD  *  EPM-2  16K  or  32K  BYTE  EPROM 

Hex  Displays,  IMSAI   Replaceable  $54.95  2708  or  2176  interchangeable  $30.00 

*  FDC-1   FLOPPY  DISC  CONTROLLER  BOARD               *QMB-9  9  SLOT  MOTHER  BOARD 
Controls  up  to  8  Discs  $45.00  Terminated    $35.00 

*MEM-1A  8K  BYTE  2102  RAM  Board  ....$31.95               *QMB-12  12  SLOT  MOTHER  BOARD 
*MEM-2  16K  BYTE  2114  RAM  Board  ....$31.95  Terminated    $40.00 

*  CPU-1    8080A   CPU   Board  *  RTC   REALTIME   CLOCK 

With  Vector  Interrupt  -$31.95  Programmable  Interrupts  $27.95 

*EPM-1  4K  BYTE  1702A  EPROM  $29.95 

FUTURE  PRODUCTS:  80  CHARACTER  VIDEO  BOARD, 
10  BOARD  WITH  CASSETTE  INTERFACE. 

DEALER  INQUIRIES  INVITED,  UNIVERSITY  DISCOUNTS  AVAILABLE 

.  AT  YOUR  LOCAL  DEALER 


y^mc 


inc. 


WAIVIECO  INC.  Ill  GLENN  WAY  #8,  BELMONT,  CA  94002      (415)  592-6141 


€ 


CALIFORNIA  COMPUTER  SYSTEMS 


16K  RAM  BOARD.  Fully  buffered  addressable  in  4K 
blocks.  IEEE  standard  tor  bank  addressing  211 4'5 

PCBD     $26.95 

Kit  450NSEC    $259.95 

PT-1    PROTO   BOARD.   Over   2,600   tioles   4"    regu- 
lators. All  S-100  buss  functions  labeled,  gold  fingers. 

PCBD    $26.95 

PT-2  PROTO  BOARD.  Similar  to  PT-1   except  set- 
up to  tiandle  solder  tail  sockets. 
PCBD    $26.95 


sSSf 


FORMERLY  CYBERCOM/SOLID  STATE  MUSIC. 

PB-1  2708&  2716  Programming  Board  with  provisions 
for  4K  or  8K  EPROIVI,  No  external  supplies  require 

lexlool   sockets.   Kit  $124.95 

CB-1  8080  Processor  Board.  2K  of  PROfvl  256  BYTE 
RAM  pov»er  on/rest  Vector  Jump  Parallel  port  wilti 

status     Kit  $119.00     PCBD  $30.95 

MB-6B  Basic  8KX8  ram  uses  2102  type  rams,  S-100 

buss.  Kit  450  MSEC $139.95        PCBD $26.95 

MB-7    16KX8,    Static    RAM    uses   (iP410   Protection, 

fully  buffered  Kit $299.95 

MB-8A   2708   EROM   Board,   S-100,   8K8X   or   16Kx8 

kit  without  PROMS  $75.00   PCBD  $28.95 

MB-9  4KX8  RAM/PROM  Board  uses  2112  RAMS  or 
82S129  PROM  kit  without  RAMS  or  PROMS  $72.00 
10-2  S-100  8  bit  parallel  /lO  port,  ^h  of  boards  is  for 

kludging.   Kit   $46,00  PCBD $26.95 

10-4  Two  serial  I/O  ports  with  full  handshaking 
20/60  ma  current  loop:  Two  parallel  I/O  ports. 

Kit  $130.00  PCBD $26.95 

VB-1B  64  X  16  video  board,  upper  lower  case  Greek, 
composite  and  parallel  video  with  software,  S-100. 

Kit $125.00  PCBD $26,95 

Allair  Compatible  Mother  Board,  llxll'/jx'/e". 

Board  only  $39.95.  With  15  connectors $94.96 

Extended  Board  full  size.  Board  only   $  9.49 

With  connector  $13.45 

SP-1  Synthesizer  Board  S-100 

PCBD $42.95  KIT $135,95 


/Y/mC/ine       WAMECO  INC. 

FDC-1  FLOPPY  CONTROLLER  BOARD  will  drive 
shugart,  pertek,  remic  5"  &  8"  drives  up  to  8  drives, 
on  board  PROM  with  power  boot  up,  will  operate 
with  CPM  (not  included). 

PCBD    $42.95 

FPB-1  Front  Panel.  IMSAI  size,  hex  displays.  Byte, 
or  instruction  single  step. 

PCBD    $47.50 

MEM-1   8KX8  fully  buffered,  S-100,  uses  2102  type 

rams.   PCBD    $25.95 

QM-12  MOTHER  BOARD,  13  slot,  terminated,  S-100 

board  only  $34,95 

CPU-1    8080A   Processor   board   S-100   with   8   level 

vector  interrupt  PCBD  $26.95 

HTC-1  Realtime  clock  board.  Two  independent  in- 
terrupts. Software  programmable.  PCBD  $23.95 

EPM-1  1702A  4K  Eprom  card  PCBD  $25.95 

EPM-2  2708/2716  16K/32K 

EPROM   CARD   PCBD   $25.95 

QM-9  MOTHER  BOARD,  Short  Version   of  QM-12. 

9  Slots  PCBD  $30,95 

MEM-2  16K  X  8  Fully  Buffered 

2114  Board  PCBD   $26.95 


8080A  $9.95 

8212   2.49 

8214    4.49 

8224   3,49 

2708   9.49 

5101-1P    6.90 


5101-8P   $  8.40 

2114  (450  NS)  lowpwr...  7.25 
2114  (250  NS)  low  pwr..  7.99 

2102A-2L    1.50 

2102A-4L    1.20 

4116   8/89.95 


m 


(415)  592-1800 
P.  O.  Box  424  •  San  Carlos,  California  94070 

Please  send  for  IC,  Xistor 
and  Computer  parts  list 


AUG  SPECIAL  SALE 
ON  PREPAID  ORDERS 

(charge  cards  not  Included  on  this  offer) 

VB-1B  WITH  MIKOS  #6  KIT  ,  .$84.95 
8KX8  RAM  Fully  buffered  450  NSEC. 
2.5  amp  typical  assembled  parts  may 
be  unmarked  or  house  numbered. 

$99.99 

MIKOS  PARTS  ASSORTIMENT 
WITH  WAMECO  AND  CYBERCOM  PCBDS 

MEM-2  with  MIKOS  "7  16K  ram 

with  L2114  450  NSEC $249.95 

MEM-2  with  MIKOS  "13  16K  ram 

with  L2114  250  NSEC   $279.95 

MEM-1  with  MIKOS  #1   450  NSEC  8K 

RAM    * $119.95 

CPU-1  with  MIKOS  #2  8080A  CPU  $94.95 

MEM-1  with  MIKOS  #3  250  NSEC  8K 

RAM    $144.95 

QM-12  with  MIKOS  #4  13  slot  mother 

board    $89.95 

RTC-1  with  MIKOS  #5  real  time  clock  $54,95 

VB-1B  with  MIKOS  #6  video  board  less 

molex    connectors    $99.95 

EMP-1  with  MIKOS  #10  4K  1702  less 

EPROMS    $49.95 

EPM-2  with  MIKOS  #11   16-32K  EPROMS 

less   EPROMS   $59.95 

QM-9  with  MIKOS  #12  9  slot  mother 

board    $79.95 

FPB-1  with  MIKOS  =14  all  parts 

for  front  panel   $134.95 

MIKOS  PARTS  ASSORTMENTS  ARE  ALL  FACTORY  PRIME 
PARTS,  KITS  INCLUDE  ALL  PARTS  LISTED  AS' REQUIRED 
FOR  THE  COMPLETE  KIT  LESS  PARTS  LISTED.  ALL  SOCKETS 
INCLUDED, 


VISA  or  MASTERCHARGE.  Send  account  numbor,  Inlarbank 
number,  expiration  date  and  sign  your  order.  Approx.  postage 
will  be  added.  Check  or  money  order  will  be  sent  post  paid  in 
U.S.  tf  you  are  not  a  regular  customer,  please  use  ctiarge, 
cashier's  check  or  postal  money  order.  Othenvise  there  will 
be  a  two-week  delay  tor  checks  to  clear.  Cant,  residents  add 
6%  lax.  Money  back  30  day  guarantee.  We  cannot  accept  re- 
turned IC's  that  have  been  soldered  to.  Prices  subject  to 
change  without  notice.  S10  minlrrtum  order.  $1.50  ■arviee  chirve 
on  orders  leas  than  )10.0O. 


244       BYTE  August  1979 


Circle  230  on  Inquiry  card. 


i 

••••■ 
••••■ 
••••■ 
••••• 
••••• 
••*.. 
••••■ 
••••• 
••••■ 

••••• 
••••■ 
••••• 
••••• 
••••• 
••••• 
••••. 
••••• 
••••■ 
••••• 
••••• 
••••■ 
•••••' 

•••••• 

•••••• 

•••••■ 

•••••• 

•••••• 

•••••' 

••••• 
••••■ 
••••. 
••••■ 

••••• 
••••• 
••••• 
••••■ 

:•••• 
•••• 
••••• 
•••••' 
••••■ 
••••• 
•••••' 
■•••■ 
••••• 

•••••' 

••«.■ 
•••••■ 
•••••' 
••••■ 
••••• 
••••• 
••••• 
••••• 
•••• 


16K  EPROM  CARD-S  100  BUSS 


V    8K  LOW  POWER  RAM  KIT-S  100  BUSS 
250  NS  SALEl 

'ADD  $5 
FOR 
250NS! 


•>.•. 

.•••• 


OUR 

BEST 

SELLING 

KIT! 


USES  2708's! 

Thousands  of  personal  and  business  systems  around 
the  world  use  this  board  with  complete  satisfaction. 
Puts  16K  of  software  on  line  at  ALL  TIMES!  Kit  features 
a  top  quality  soldermasked  and  silk-screened  PC  board 
and  first  run  parts  and  sockets.  All  parts  (except  2708's) 
are  included.  Any  number  of  EPROM  locations  may  be 
disabled  to  avoid  any  memory  conflicts.  Fully  buffered 
and  has  WAIT  STATE  capabilities. 


OUR  450NS  2708'S 
ARE  $8.95  EA.  WITH 
PURCHASE  OF  KIT 


ASSEMBLED 

AND  FULLY  TESTED 

ADD  $25 


$129 


KIT 


(450  NS  RAMS!) 

Thousands  of  computer  systems  rely  on  this  rugged,  work 
horse,  RAM  board.  Designed  for  error-free,  NO  HASSLE, 
systems  use. 
KIT  FEATURES: 

1.  Doubled  sided  PC  Board  with  solder 
mask  and  silk  screen  layout. Gold 
plated  contact  fingers. 

2.  All  sockets  included. 

3.  Fully  buffered  on  all  address  and  data 
lines. 

4.  Phantom  is  jumper  selectable  to  pin 
67. 

5.  FOUR  7805  regulators  are  provided 
»v   on  card. 


Blank  PC  Board  w/Documentation 

$29.95 

Low  Profile  Socket  Set.  .13.50 

Support  IC's  (TTL  &  Regulators) 

$9.75 
Bypass  CAP's  (Disc  &  Tantalums) 

$4.50 

ASSEMBLED  AND  FULLY 
BURNED  IN  ADD  $30  , 


16K  STATIC  RAM  KIT-S  100  BUSS 


-1^1111111111:11111.1 

-flll'lll'll'll'lll'l'l'l'l 


^r 


$295 


KIT 


FULLY 

STATIC,  AT 

DYNAMIC  PRICES 


WHY  THE  2114  RAM  CHIP? 

We  feel  the 21 14  will  be  Ihe  nexl  iridustry  standard 
RAM  chip  (like  the  2i02  was).  This  means  price, 
availability,  and  quality  will  all  be  good!  Next,  the 
2114  IS  FULLY  STATIC  We  feel  this  IS  the  ONLY 
way  10  go  on  the  S-100  Buss'  We've  all  heard  the 
HORROR  stories  about  some  Dynamic  Ram 
Boards  having  trouble  with  DMA  and  FLOPPY 
DISC  DRIVES  Who  needs  these  kinds  of 
problems?  And  finally,  even  among  other  4K 
Static  RAM's  the  21 14  stands  out!  Not  alMK  static 
Rams  are  created  equal'  Some  of  tfie  other  4K's 
have  clocked  chip  enable  lines  and  various  timing 
windows  just  as  critical  as  Dynamic  RAM's.  Some 
of  our  competitor's  16K  boards  use  these  "tricky" 
devices  Bui  not  us'  The  21 14  is  the  ONLY  logical 
choice  for  a  trouble-free,  straightforward  design 


KIT  FEATURES, 

1.  Addressable  as  four  separate  4K  Blocks 

2.  ON  BOARD  BANK  SELECT  circuitry 
(Cromemco  StandardI).  Allows  up  to  512K  on 
line! 

3.  Uses  2114  (450NS1  4K  Static  Rams 

4    ON  BOARD  SELECTABLE  WAIT  STATES 
5.  Double  sided  PC  Board,  with  solder  mask  and 
silk  screened  layout.  Gold  plated  contact  fingers. 
6  All  address  and  data  lines  fully  buffered. 
7.  Kit  includes  ALL  parts  and  sockets, 
a.  PHANTOM  is  jumpered  lo  PIN  67. 

9  LOW  POWER:  under  2  amps  TYPICAL  from  the 
16  Volt  Buss. 

10  Blank  PC  Board  can  be  populated  as  any 
multiple  of  4K. 


BLANK  PC  BOARD  W/DATA— $33 
LOW  PROFILE  SOCKET  SET— $12         ASSEMBLED  &  TESTED—ADD  $30 


SUPPORT  IC'S  &  CAPS— $19.95 


2114  RAM'S— 8  FOR  $69.95 


16K  STATIC  RAM  SS-50  BUSS 


»295 


KIT 


iiiiiiiiiiilillll 
iiiiliiiiiilillE 


FULLY  STATIC 
AT  DYNAMIC  PRICES 


KIT  FEATURES:  1.  Addressable  on  16K  Boundaries 

2.  Uses  2114  Static  Ram 

3.  Runs  at  Full  Speed 

4.  Double  sided  PC  Board.  Solder 
mask  and  silk  screened  layout. 
Gold  fingers. 

5.  All  Parts  and  Sockets  included 

6.  Low  Power:  Under  2  Amps 
Typical 


FOR  SWTPC 
6800  BUSS! 


BLANK  PC  BOARD— $33 


yv_ 


COMPLETE  SOCKET  SET- 
SUPPORT  IC'S  AND  CAPS— $19.95 


$12 


TM990  BUSS  PROTOTYPE  &  WIREWRAP  BOARD 

For  use  with  the  Texas  Instrument  Series  of  16  Bit 
Microcomputer  Modules.  Fully  buss  compatible.  An 
inexpensive  and  quick  way  to  expand  the  capacity 
of  your  Tl  computer.  Made  of  G-10  Epoxy  PC 
material.  Gold  plated  contact  fingers  all  plated 
through  holes.  High  density,  up  to  over  100  DIP's. 
Fully  documented.  $70 each    (OEM  Discounts  Available) 


Z-80  PROGRAMMING  MANUAL 

By  MOSTEK,  orZILOG  The  most  detailed  explanation 
ever  on  the  worl^ing  of  the  Z-80  GPU  CHIPS.  At  least 
one  lull  page  on  each  of  the  158  Z-80  instructions.  A 
MUST  reference  manual  for  any  user  of  the  Z-80.  300 
pages.  Just  off  the  press. $12.95 


450  Nsi  2708  EPROMS 

Now  full  speed!  Prime  new  units  from  a 
major  U.S.  Mfg.  450  N.S.  Access  time. 
IK  X  8.  Equiv.  to  4-1702  A's  in  one 
package.  tooc 

$15.75  00.  $Q95  /^  ppr  $60.00 

PRICE  CUT 


NOT  ASSOCIATED  WITH 
DIGITAL  RESEARCH 

OF  CALIFORNIA, 

THE  SUPPLIERS  OF 

CPM  SOFTWARE. 


ANNOUNCEMENT: 

To  better  serve  ourciJSlomers  we 
are  splitting  Digital  Researcti 
Corp  ot  Texas  into  two  operating 
sections  Parts  and  CompLiters 
We  feel  Itiis  change  will  allow  us 
to  ofler  you  lower  prices,  better 
service  and  many  more  new 
prodLicls  Continue  to  order 
parts,  clock  modules  etc  from 
DRP  PC  Box  401247  Garland 
TX  75040  To  order  computer 
parts  and  computer  kits  order 
from  Digital  Research-  Compu- 
ters P  0  Box  401565  Garland 
TX  75040 


16K  DYNAMIC  RAM  CHIP 

16KX  1  Bits.  16  Pin  Package,  Same  as  Mostek  41 16-4,  250 
NS  access  410  NS  cycle  time.  Our  best  price  yet  for  this 
stale  of  the  art  RAM.  32K  and  64K  RAIyl  boards  using  this 
chip  are  readily  available.  These  are  new.  fully  guaranteed 
devices  by  a  major  mfg,  VERY  LIMITED  STOCK! 
8  FOR  $79.50 


•••-•.■••S 


Digital  Research:  Computers 

*'  (OF  TEXAS)  "^ 

P.O.  Box  401565    •  GARLAND,  TEXAS  75040  •  (214)  271-2461 


TERMS:  Add  50C  postage,  we  pay  balance  Orders  under  $15  add  75C  handling 
No  C  O.D  We  accept  Visa,  MasterCharge.  and  American  Express  cards.  Tex 
Res.  add  5%  Tax  Foreign  orders  (except  Canada  add  20%  P  &  H  90  Day  Money 
Back  Guarantee  on  all  items 


•••:. 


Circle  100  on  inquiry  card. 


BYTE  August  1979         245 


Circle  151  on  inquiry  card. 


So  fHBM  BtU 

Scamrr  SAYS 

70  OS, 

Silt  (kd ".  Ut,  bj^  ftpfifJ, 

ai/itf  Uie,  ck)ft'4-  ^1^6  Hint  -for 

'f\fftttH\M  <r  phafci  or 

mlnfif.  v/vjf  •/rechaAt(  if:  or 
SajHfc-MM-7  ".    OK,  8;//.  Aerc 


TBMIS  oF  SALE:  &<dh  lf--er»s  Ujje-iief- 
lait.  for  VlSf^or  Itla^rthrfP  orders 
CAll  our  ^  hr.  ofdv  desK  flf  «/5";.fl»2- 

0636  ■  Cai>f'"'ni*  rtside^tr  add  Sth  iat:- 
hdd   S%>   -fiir  Shijfpkj ;  eacess  nrfufidfe(. 
Cov  oK  Ui-Hf  sf'rtct  addke^^s  f<^  ^^^ 
cieli\/ttif.  ?»'  /*'>''«  ^i<r{o   sec  our  -fulh 
p«je.,  SortieaAat-  >««/"£  -^rmol  aj  Me  - 


mraiBG 


8i7/  Sodbout-  ekcHtnitS,  SuiUing  7SS, 
Oakland  A''r/>orf,  CA  946/4      ° 


a  SAdfi.    A-t  -/iis  £nccj"^er<. 


pcMgitn  ^  $87. 2o!  Our  Se.-h 

CAlf;^  dio  ihiM-h  af\4  -fill  4b-     f^o-l.   prlce.^^  to'i-iA  'all  t^«-  per- 
C.VMmj-a^kr\  -fhA-t  /KA^ei    m-      ^Mi^c^l   ifau.  or  yauT  (^fkxkT 


we-Ve,  ()of-  naj  product .  df- 


|^12S"g^/3/^j7<^tvayxi? 


hJo  tiUir^^  -  $12^  !  Our  bnx^d  -f)coJ 

.Stmt-  CCwtro/tA  T£  Unklh  arouir\dl  ai\d^ 
IMmf  -h  dear  -fhem  auh.  €ve/\  /)y  -/oq^ 
S^dtuh.  -the  old  €tmrm  T.  is  an^ 
^fce/leint  merhory.  X+  o{{ers  -fu/l  2 


srnrie.  ¥t<^\ 

beit  ■inct  /earrA  )n  -ike  'indushH 
-H>r  rtJluiik  an4  Ces.Ke{^cH/o  ' 
Operai-tay).  Qor  ^^'^  ^^^  ^// 
£ock:e.H  Ot^iil  ^pt£^  caps  prt- 
s4sfered  h  fifce.  -for  e«y    a/^e- 


-  Hi!,  IS  c,  /;»,;w  afv. 


FREE! 

WITH  THE  PURCHASE  OF  ONE 
OF  THE  FOLLOWING  PET-CBM 
ITEMS!! 


PET  SPECIALS  LIST  FREE* 

PET  16N  16K  full  size  graphics  keyboard  $  995  $130 

UP  TO  S170  IN     PET  16B  16K  full  size  business  keyboard  $  995  $130 

MERCHANDISE     PET  32N  32K  full  size  grapfiics  keyboard  $1295  $170 

PET  32B  32K  full  size  business  keyboard  $1295  $170 

PET  16S  16K  small  keyboard,  integral  cassette  $  995  $130 

PET32S  32K  small  keyboard,  integral  cassette  $1295  $170 

PET   8K  8K  small  keyboard,  integral  cassette  $  795  $100 

ASK  ABOUT     PET  2040  Oual  Disk  Drive  -  343,000  bytes  $1295  $170 

EDUCATIONAL  pet  2040A  Singie  Disk  Drive  -  171,000  bytes  $  895  $115 

^'nE^nW^     PET  2022  Tractor  Feed  Printer  $  995  $130 

ON  PET        PET  2023  Pressure  Feed  Printer  $  849  $110 

PET  C2N  External  Cassette  Deck  $    95  3  12 

$  79.50 

$119.00 


IEEE  -  RS232  Printer  Adaptor  for  PET 
BETSI  PET  to  S-100  Interface  &  Motherboard 
PET  Connectors-  Parallel  or  IEEE  $    2.25 
-  Cassette  Port  $    1.60 
Personal  information  Management  System- 
Add  S3  lor  PET  program  cassette  $     8.90 

Protect-A-Pet  dust  cover  $    9.50 

EXS  100  Floppy  Disk  Controller  For  PET  $299.00 

MICROCHESS  for  PET  {Peter  Jennings)  $  17.90 

PET  4  Voice  Music  Board  (MTUK-1002-2)  $  49.00 

Music  Software  {K-1002-3C)  for  PET  $  19.00 

CmC  Word  Processor  program  for  PET  $  25.00 

Bridge  Challenger  program  for  PET  $  13.50 

Play  and  reply  bridge  hands  against  the  PET 

Graphics  Utility  Package  for  PET  $  13.50 

Stimulating  Simulations-Book  &  PET  tape  $  13.50 

Kite  Flight  -  2  player  action  game  $     7.95 

Write  for  PET  Softvi/are  List 

Auto-Repeat  Hardware  for  PET  $  24.50 
Word  Processor  for  PET  —  Machine  Language 

version.  Auto  scroll,  insert,  delete,  form  letter  append,  etc. 

8K  Version    $  24.00      16K  or  32K  with  disk  $  95.00 
*  Amount  of  Free  iVIercliandise  with  Purcliase  of  PET-CBiVI  Item 


WRITE  FOR  6502  AND 
S-100  PRODUCT  LIST 


KIM-1  $159  (Add S30lor Power SupplylSYM-1 

BAS-1  Microsoft  ROM  Basic  for  SYM 
Memory  Plus 

SEA-16  New  16K  Static  RAM 
Seawell  Motherboard-4K  RAM 

space 
KTM-2  Synertek  Keyboard  and 

Video  Interface  with  Graphics 

Capability 
RAM  16  4MHz  16K  Static  S-100 

RAM 
2114  L  450  ns   4K  Static  RAM 
2716  EPROM  (5  Volt) 
6550  RAM  (for  PET  8K) 
6502  Microprocessor  Chip 
6522  VIA 
6502  PIA 


$229 
$139 
$199 
$325 

$  99 


FREE! 

UP  TO  $170  IN 
MERCHANDISE 


BOOKS 

Programming  the  6502  (Zaks) 
6502  Applications  Book  (Zaks) 
6500  Programming  Manual  (MOS) 
Programming  a  Microcomputer:6502 
Basic  for  Home  Computers 


S290 

$309 
$6.95 
$  38 
$16.20 
$  9.95 
$9.75 
$10.50 

$  9.90 
S11.90 
$  6.50 
$  8.90 
$  5.90 


3M  "Scotch' 

8"  disks 

10/S31 

3IVI  "Scotch' 

•  5"  diskettes         SALE 

10/$35 

Verbatim  5" 

diskettes 
(Write  lor  quantity  prices) 

1D/$28 

iVIinimum  Order  $10.00 


A  B  Computers 


Cassettes  (all  tapes  guaranteed) 

Premium  quality,  high  output  lownoise  in  5 

screw  housing  with  labels: 

C-10    10/5.95    50/25.00    100/48.00 
C-30    10/7.00    50/30.00    100/57.00 


115-A  E.  Stump  Road 
Montgomeryville,  PA  18936 
(215)699-8386 


246       BYTE  August  1979 


Circle  1  on  inquiry  card. 


i#^ 


COMPUTER  TERMINAL 

BREAKTHROUGH 

$795 


This  is  not  the  first  terminal  built  around  a 
microprocessor,  but  there  has  never  been  a 
terminal  at  this  price  which  could  also  be  used 
as  a  complete  computer  system.  Now  the  same 
unit  you  use  for  talking  to  a  large  time-sharing 
system  can  also  be  used  for  many  other  tasks 
without  requiring  outside  computer  support. 
With  the  proper  software  you  can  handle  small 
jobs  such  as  complex  calculations  and  animated 
graphics. 

Economy  through  mass  production 

If  an  entirely  new  product  was  designed  specifi- 
cally to  do  all  the  things  you  can  do  with  the 
T/C  2001,  it  would  have  to  cost  thousands  of 
dollars.  NCE/CompuMart  has  bypassed  a  lot  of 
expensive  design  work  by  employing  a  mass- 
produced  computer  as  the  heart  of  the  T/C 
2001.  The  Commodore  PET  has  now  been  in 
production  for  nearly  two  years  and  more  than 
50,000  units  have  been  sold  worldwide.  There 
is  no  other  computer  at  this  price  which  has  all 
these  built-in  features:  9"  TV  monitor,  73-key 
keyboard  (larger  sizes  available),  cassette  tape 
drive  for  loading  programs  and  data,  high-level 
BASIC  language,  four  interfaces  and  a  24-hour 
clock.  And  it's  expandable!  If  you  find  that 
you  need  faster  data  storage,  you  can  plug  in  a 
floppy  disk.  If  you  want  to  be  able  to  print 
forms  or  listings, you  can  attach  a  printer. 

Free  tape  drive 

The  8K  PET  which  costs  $795  comes  with 
a  built-in  tape  drive  but  its  keyboard  is  smaller 
than  the  standard  typewriter  you  may  be  used 
to.  The  $995  16K  PET  and  the  $1295  32K  PET 
have  a  standard-sized  keyboard  but  they  require 
an  external  cassette  tape  drive  for  operation. 
Normally  $95,  we  include  it  free  with  each  16K 
or  32K  PET.  The  T/C  2001  package,  worth 
$69  if  purchased  separately,  is  free  with  any 
PET  ordered  from  this  ad. 


CAT  ACOUSTIC 
MODEM 

$189.00 


Novation's  new  300  baud  acoustic  modem,  the 
CAT  sets  a  new  price  standard  for  units  with 
originate  and  answer  capabilities.  It's  the 
perfect  T/C  2001  companion,  making  the 
final  link  with  your  timesharing  service.  It's 
RS-232  with  full  or  half  duplex  using  any  Bell 
103  compatible  modem.  This  amazingly  com- 
pact unit  comes  with  acoustic  self-test,  too. 


BUY  A  PET "  AND  GET 
A  TERMINAL  FREE 

^  commodore 


FREE  10  DAY  TRIAL 

NCE/CompuMart  has  been  selling  computers  by  mail  since  1971  and  we  know  our 
business.  We  know  that  you  need  to  have  complete  confidence  in  the  product  and  the 
company  behind  it  so  we  offer  you  this  unconditional  guarantee:  Try  it  for  10  days  and 
if  it  does  not  meet  all  of  your  expectations,  return  it  for  a  full  refund  of  your  purchase 
price.  In  addition,  since  the  PET  is  one  of  the  most  reliable  systems  we've  ever  sold, 
we're  doubling  the  manufacturer's  warranty  on  machines  ordered  from  this  ad  to  protect 
you  for  a  full  6  months  against  defects  in  parts  or  workmanship.  You  can't  lose;  it's 
our  way  of  assuring  satisfaction  to  those  who  aren't  able  to  visit  our  showroom  at  the 
NCE/CompuMart  store  and  warehouse  in  Ann  Arbor. 


Accessories 

Cassette  Tape  Drive  —  A  second  cassette  tape  drive  is  required 
whenever  you  need  to  update  long  files  or  perform  backup  copy 
operations.  It  plugs  directly  into  the  PET  and  is  accessed  through 
the  BASIC  language.  Note:  All  PETs  ordered  through  this  ad 
include  the  first  tape  drive. 

Dual  Floppy  Disk  Drive  —  Programs  which  take  3  minutes  to 
load  from  a  tape  require  only  seconds  to  load  from  a  disk.  The 
PET  2040  Dual  Floppy  Disk  Drive  requires  no  extra  memory  or 
expansion  box,  it  plugs  right  in  for  fast,  reliable  program  and 
data  storage  up  to  36K.  The  2040  is  compatible  only  with  the 
16K  and  32K  PETs. 

T/C  2001  Terminal  Package  —  If  you  already  own  a  PET,  you 
can  add  this  valuable  option  by  simply  plugging  in  our  special 
adapter  and  loading  a  program  from  the  included  tape.  Please 
specify  which  model  PET  you  have.  The  output  is  TTL  in  the 
standard  serial  format,  input  is  RS-232. 

How  to  order -Simply  fill  out  the  order  blank  below  or  call  (313)  994-3200 
to  place  charge  card  orders.  If  you  don't  already  have  our  all -new  48-page  NCE 
Mini -Micro  Computer  Catalog,  check  the  box  and  we'll  send  you  one  right  away. 

NCE/COMPUMART  •  P.O.  Box  8610  •  1250  N.  Main  St.  •  Ann  Arbor,  Ml  48107 


PHONE  ORDERS  ACCEPTED  (313)994-3200    § 

HK  T/C  2001  S795.00       D/t  x/lmCMT  td 


a    8K  T/C  2001 

plus  $10.07  shipping  and  handling 
D    16K  T/C  2001  $995.00 

plus  $10.07  shipping  and  handling 
a    32K  T/C  2001  $1,295.00 

plus  $10.07  shipping  and  handling 
a    Dual  Floppy  Disk  Drive       $1,295.00 

plus  $7.16  shipping  and  handling 
D    T/C  2001  Terminal  Package      $69.00 

plus  $3.99  shipping  and  handling 
D  CAT  ACOUSTIC  COUPLER  $189.00 

plus  $3.35  shipping  and  handling 

a  Send  me  my  FREE  catalog 


$795.00     PAYMENT 


D   check  #  . 


D   money  order 

D   charge 
D    VISA 
D    MASTERCHARGE 

Acct.  # 

Name  

Address 

City  

State 


(^ 


Member 

Computer  Dealers 
Asiociolion 


Interbank  # . 


Zip. 


Circle  283  on  Inquiry  card. 


BYTE  August  1979         247 


£ 


Computer  Products 


I 


THE  PIGGY  MAINFRAME 


This  sleak  new  maintrame  is  neatly  trimmed  to  hold  six  S-100 
boards,  two  mini-floppy  drives,  and  is  available  in  live  colors.  Power 
requirements:  115/220  VAC.  50,60  HZ.  Weight:  27  (bs.  (with  drives) 
Dimensions:  21.375"  Wide  X8.4"  High  X  15.875  Deep.  Power  Supply 
8  volts  at  18  Amps  unregulated.  16  volts  at  3  amps  uregulaled.  -  16 
volts  at  3  amps  unregulated.  5  volts  at  3  amps  regulated.  12vollsal 
3  amps  regulated. 

THE  PIGGY  IS  HERE! 


THE  PIGGY  (Without  Drives). 


S475.00 


VIDEO  INTERFACE 

5-100  Compatibte  Serial  Inter 
face  with  Sockets  Included. 
Kit  $117.95 

Assenitjied  i  Tested         $159.95 
Bare  Board  w/manual       $    35.00 


MEM-2 
16  K  Static  RAM  Board 

Kit-  (450ns)  S250.00 

Kit-  (25ans)  S285.00 

Assembled-  (450n5)  S325.00 

Assembled-  (250ns)  S3S0.OO 


DYNAMIC  RAM  BOARDS 
EXPANDABLE  TO  64K 
32K  VERSION  "KITS 

Uses  4115  (8Kx  1,  250ns)  Dynamic 
RAM's,  can  De  expanded  in  SK 
ncrements  up  to  32K 


aK    $159.00 
16K    $199.00 


24K    $249.00 
32K    $299.00 


4115  SALE 
8  for  $39.95 


64K  VERSION  •  KITS 

Uses  4116  (16Kx  1.  200ns)  Dynamic 
RAM's,  can  t)e  expanded  in  16K 
increments  up  to  64K: 


mTm-a. 


$245 


6502  Dasea     single     board 

computer  with  keyboard/dis- 
play,  KIM-l  hardware  compa- 
tible, complete  docuiTientation. 

SYM— 1  CASE  $39.95 


JADE 

ISO— BUS 

MOTHERBOARDS 

Comes  in  eltlier  6, 12,  or 

18    slot    sizes.    These 

boards    with    a    special 

ground  plane  assures  a 

silent  operation 

JADE  6  Slot 

Kil    S49.95 

Assembled    ....  $59.95 
Bare  Board    ....   S24.95 

JADE  12  Slot 

Kit    $89.95 

Assembled    ....  $99.95 
Bare  Board  $39.95 

JADE  18  Slot 

Kit    $129.95 

Assembled    , . .  5149.95 
Bare  Board    .      .  559.95 


SD  SYSTEMS 
Z-80  STARTER  KIT 
Based  on  the  powerful  Z80 
CPU,  this  kit  Is  an  Ideal 
Introduction  to  micropro- 
cessors. II  has  an  on-board 
keyboard  and  display,  plus 
cassette  tape  Interlace  and 
expansion  provisions  (or 
two  S-100  connectors.  This 
•Do-ll-all"  Board  will  also 
program  the  2716  2K 
EPROM. 

Kit $249.95 

Assmbid  and  Tsid   $399.95 


PROTO  BOARD 

Includes  gold  plated 
fingers,  S-100  size,  holds 
72-16  pin  dips,  accomo- 
dates al)  8  thru  40  pin  dip 
packages. 

Reg-S19  95  Special  Prlce- 
$16.95 


PARALLEUSEniAL 

(NTEHFACE 

5-100  compalible,  2  serial  I/O 

ports,  1  parallel  I/O. 
KM  JG-P/S  H  24. 9S 

Assembled  &  Tested 
JG-P/SA  il  79.95 

Bare  Board  W/Manual      \    30  00 


TRS-ao-APPLE-SORCEHER-TRS-aO'APP' 

JADE  MEMORY 
°  EXPANSION  KITS  For^ 
TRS— 80.  Apple,  &  Exidy  I 
4ll6"i 

^  Everything  a  person  needs  to  ° 
?dd  16K  of  memory.  Chips  5 
come  neatiy  packaged  with  I 
(  asy  to  follow  directions.  In  ^ 
minutes  your  machine  Is  I 
ready  for  games  and  more  % 
advanced  software.  » 

$82.00   \ 

^JJyJ^o^^^3a^^uos^dd^^^ 


Solid  State  Music's 

I/O  4 

2    Serial  &  2-  Parallel  I  O 
Ports   S-100  with  lull  hand- 
shaking. 

KIT  S149.95 

Assembled  3199.95 

Bare  Board  S29  95 


EOf 


mmmtmtumutimmmmimtmmmmmmtmm 

The  €xidy 
SORC€ReR 


Rexibllly  Is  the  key.  The  Sorcerer  Computer  gives  you  the  flexibility  of  using  ready-to- 
run,  pre-packaged  programs  or  doing  your  own  thing  and  personalizing  the  programs  (or 
yourself.  Which  ever  you  choose,  the  Sorcerer  is  the  personal  computer  that  speaks  your 
language. 

The  Sorcerer  also  provides  full  graphics  capabilties.  Each  character,  formed  by  an  8  x  8 
dot  cell,  can  be  programmed  as  a  graphic  symbol  set.  High  resolution  (512  x  240 
addressable  points)  gives  a  total  of  122.880  locations  for  super  animation  and  extremely 
tight  plotting  curves.  The  alphanumeric  set  gives  64  x  30  characters  on  the  video  screen 

With  16K  of  memory $1150.00 


CHIPS 


MICROPROCESSORS 

F8  S16.95 

Z8u  (2MH2I  S10.95 

Z80A  (4MH2)  S14.95 

CDPI802CD  .     519.95 

6502  Sti  95 

6800  S9  75 

6802  -             $1400 

8008-1  $15,95 

8035  $24  00 

8035.8  S24.00 

80B0-A  S10.00 

8085  $23  00 

TMS9900TL  S49  95 
8080A  SUPPORT  DEVICES 


16K    $249.00 
32K    $369.00 


4IK    $469.00 
64K    $S69.00 


^  STATIC  RAM^ 
SPECIALS 


2114's,  low  power  (1024x4) 

1-15     1699    100  - 

4$0nt  1.00      6.9S      S.JO 

300ni  9.00       1.00      6.50 


■IMS4044/MM5257,  low  powe 


4$0ni 
300ns 


t.OO 
9.95 


7. SO 
t.7S 


4200A  (4Kxl,  200n$) 
I9.9S  I   I.SO 


6. SO 
t.OO 


1.00 


410D    (4K  X  1,  200  ns) 

|6.2S  [  7.00    [6.75 


STATIC  RAM 
BOARDS 


JADE  8K 

Kits:  450nt         $125.95 

2S0nt         $149.75 

Assembled  &  Tested: 

4S0ni  $139.75 

2S0ni  $169. 7S 

Bare  Board: $   25.00 


16K  -  UiM  2114'!  (low  power) 
Assembled  &  Tested: 

RAM  16     (250nt)      $375.00 
RAM  16B(450nt)      $325.00 


16K  with  mamory  managsnwnt 

Assembled  &  Tasted: 

RAM  65     (250ns)      $390.00 
RAM  65B<450ntl      $350.00 


32K  Static 

Assembled  <■  Tasted: 

2S0ni  $795.00 

450ni  $7,25.00 

250nt  Kit       $S75.00 


RocKwell  Aim-65:  The  Head-Start 
In  microcomDuters 

A    KlMl     cornpaliDle    macriine    with 
on-Doard  printer  and  a  real  keyboard' 

$375.00  w/lK  RAM 

$450.00  W/4K  RAM 
4K  assemDler/editor  m  ROM 
8K   BASIC  tn   RCJM: 
Power  suDD'y: 
Case  for   A|IVI-6b: 

Special  Package  Price:   $599.00 

AIM-65  (4K),  Power  Supply.  Case,  and  faK  8AS 


SD  SYSTEMS 
SBC-100 

An  S-100  single  board  com 
pultr  Z-80  CPU  wilh  10?4 
byles  ol  RAM  8  to  32K  byles 
of  PROM    Serial  I  0  port 

•<"  S239  95 

Assembled  5359  95 


TARBELL 
Cassette  interlace 

ugs  inio  your  IMSAI  or 
ALTAIR  4  eitira  status  lines 
37  page  manua'  included,  4 
ra  control  tines 

S99  95 
-Asspmbled  S175  00 

Ba'p  Board  S40  00 

M,i..u,il  S8  00 


POUU€R 
SUPPLIES 


PSD-249A;  For  a  Single  5  1  4  Disk 
Drive  By  Power-One  or  Alpha  Power: 
5V  at   7A.  ■.  .    ■■  ■   ■•-.  •■■  .     <i. 


PSD-205A   For  Single  B    Disk  Drive 

By  Power-One       5V  at  1  A,  -5V  at  SA 

24V  at  1  dA  S89.95 

PSD-206A  For  Two  8  Disk  Drives. 
By  Power-One  or  Alpha  Power  5V 
at  2  5A  -5V  at  5A  -24V  at 
3A  S125.00 

Rockwell   Aim-65  Power  Supply 
■PSX-030A  S5995 

KIM-1  or  SYM-1  Pow/er  Supply 
PSX-020A  Sfig  95 


DIP  SWITCHES 


P.irl  No      |) 

JSlllO 

!•.     19 

SWD  103 

51   18 

■WO  '04 

SI  20 

3WD    ■<)'> 

SI  24 

SWD  106 

S1  28 

SWD  107 

S1  30 

SWD  lOB 

8 

SI  34 

SWD   109 

9 

SI  36 

SWD  110 

10 

SI  38 

TEXTOOL 

ZIP* 

DIP*  II 

Sockets 

*ZERO 
INSERTION  FORCE 

'    "MlrnS.    ll  PRICES: 


16  pin  Zip  Oip  II 

$6.60 

34  pin  Zip  Dip  II 

$7.60 

40  pin  Zip  Dip  II 

$10.26 

8212 

8214 

8216 

8224  I2MH/I 

8224. 4  (4MH21 

8226 

8228 

8238 

8243 

8251 

8253 

8255 

8257 

8259 

8275 

8279 

L 
S2350 

U 
AY5-10I3A 
AY5-t014A 
TR1602B 
TMS6011 
IM6403 


S2  90 
S4  65 
S2  75 

54  30 
S9  95 
S2  75 
S6  40 

56  40 

55  00 

57  50 
520  00 

56  40 
S18.00 
S18  00 
S51  20 
517  70 

510  95 

S5  25 

58  25 
SS25 
S5.95 

59  00 


BAUD  RATE  GENERATORS 

MC14411  SIOOO 

14411  Ciyslal  54  95 

6800  PRODUCT 

6821P  55  25 

6828P  S9  50 

6834P  516.95 

6850P  S4  80 

6852P  5525 

6860P  59  25 

6862P  S12  00 

6875L  57  30 

6880P  S2  50 
CHARACTER  GENERATORS 


2513  Upper  {1-12    5| 
2513  Lower  (112     5) 
2513  Upper  (5  iroll) 
2513  Lower  (5  voll) 
MCM6571  up  scin 
MCM6571A  down  scsn 
PROMS 
1702A 
2708 

2716(5     121 
2716  (5v) 
2758  (5v| 

DYNAMIC  RAMS 
416D  4116  (200nsl 
2104  4096 
2107B-4 
TMS4027  4096 


STATIC  RAMS 
21L02  |4S0ns| 
21L02  (250nsl 
2101-1 
21111 
2112-1 


1-15 
SI  50 

51  75 

52  95 
S325 
5295 


56  75 
56  75 
59  75 
510  95 
S10  95 
510  95 

S6  00 
51295 
549.00 
S4900 
$30  00 

512  50 
54  00 
S3  95 
5400 

16-100 

51.20 

51  50 

52.60 

53.00 

S265 


FLOPPY  DISK  CONTROLLERS 

1771801  539  95 

1791  549  95 

KEYBOARD  CHIPS 

AY5-2376  513  75 

AY5-3600  513.75 

MM5740  518  00 


248       BYTE  August  1979 


Circle  195  on  Inquiry  card. 


PLACE    ORDERS     TOLL  FREE 


eOO/421-5809  Continental  U.S. 
800/262-1710  Intid*  California 


THE  BIG  2 


THE  NEW  Z-80 

CPU  BOARD  FROM  JADE 

Features  Include:  ■  S-100  Compatible,  available  in  2MHz  or  4MHz 
versions.  ■  On-board  2708.  2716,  2516,  or  2532  EPROM  can  be 
addressed  on  any  1 K,  2K,  or  4K  boundary,  with  power-on  jump  to 
EPROM.  ■  On-board  EPROM  may  be  used  in  SHADOW  mode 
allowing  lull  64K  RAM  to  be  used.  ■  Automatic  MWRITE  generation 
il  tront  panel  is  not  used.  ■  On-board  USART  lor  synchronous  or 
asynchronous  RS232  operation  (on-board  baud  rate  generator).  ■ 
Reverse-channel  capability  on  USART  allows  use  with  buttered 
peripherals  or  devices  with  "not-ready"  signal. 

2MHz-  4  MHz- 


Kit  CPU-30200K.  2  lbs     .  .  $149.95 
Assembled  and  Tested: 

CPU-30200A.  2  lbs  ...   $199.95 


Kit:  CPU-30201K,  2  lbs  .  .  S159  95 
Assembled  and  Tested 

CPU-30201A,  2  lbs   . .  S209  95 


mirmm    ' 


anijjijjjj/iiii 


': 


JADE'S 
DOUBLE  DENSITY 

■  Single  or  Double  Density 
Recording 

■  Full  Size  or  Mini  Floppy 
TM                ■  CP/M  Compatible  in  either 

density 

■  Programmed  Data  Transfer, 
no  DMA 

■  Controls  up  to  8  drives 

■  IBM  format  in  either  density 

■  Software    Selectable 
KIT:    $249.00                       Density 

Assmb.  S,  Tstd:    $299.00 

■  This  controler  utilizes  the  proven  reliability  of  the  IBM 
standard  format  as  well  as  the  lastest  phase-locked-loop  for 
data  separation  ■  All  clocks  are  generated  from  an  on-board 
crystal  oscillator  ■  Right  precompensation  Is  used  to  enhance 
data  recovery  reliability  in  the  double  density  mode  ■  Density 
selection  is  entirely  transparent  to  the  user  ■  Smgle  and  double 
density  diskettes  can  be  mixed  on  the  same  system 


i^n 


LEEDEX  MONITOR 

•  12  -  Black  and  White 

•  12MHZ  Bandwidth 

•  Handaome  Plaatic  Case 


$139.' 


CABLES 


MINI-DISK  CABLE  KtT:  To  connect 
two  5  1/4"  drives  to  disk  conlrollei 
board.  Contains  assembled  and  tested 
5'  long  signal  cable  with  34  pin  edge 
connectors.  Also  includes  cables  and 
connector  lor  D.C.  power  supply. 
WCA-3431K S34.95 

8"  DISK  CABLE  KIT:  To  connect  two  8  ■ 
disk  drives  to  edge-type  controller 
(e.g.,  Versatloppy,  Double-D). 
'Contains  assembled  and  tested  signal 
cable  with  connectors  plus  cabte  and 
connectors  for  both  A.C.  and  D.C. 
power. 
WCA-5031K $38.45 

8  ■  DISK  CABLE  KIT:  Same  as  WCA- 
5031K  except  controller  end  of  signal 
cable  uses  "Header"  type  connector, 
e.g.,  for  Tarbell  Controller. 

WCA-5032K $38.95 

SIGNAL  CABLE  ONLY:  For  one  5  1/4" 
drive  to  edge  type  controller  connector 
(e.g..  TRS-80  to  Vista  Disk  Drive). 

WCA-3421A $24.95 

Same  as  Above,  except  (or  two  5  1/4" 
drives.  WCA-3431A $29.95 


INT€GRnL  DFJin  SVST€MS  MOD6L  440 

$995  00    TH6  PFIP6R  TIG6R 
PRINT6R 

I  Up  to  1 98  CPS 

I  1 .75"  to  9.5"  Adjustable  Tractor  Feed     , 
I  Parallel  and  Serial  Interface  < 

I  96  Character  ASCII  Set  ^^ 

I  1 32  columns-  6  or  8  lines/inch  4|S  ' 

I  eight  softuuare  selectable  Character  sizesW-^ 
I  no,  300,  600,  1200  Baud  Rate 

(Ofl  TH€  GfiflPHIC  OPTION  UUITH  2K,  RDD  $199.00 


«^^ 


o    o    o    o    o 

speciflL 


51/4"  Diskettes 
$29.95/3ox  oF  T€N 

SP€CIP/  SOF,  10,  or  16  SeCTOfl 

8"  SINGLC  SID6,  SINGL6  D6NSITV 
$34.95/Box  of  T6N 


Plugboards 


8800V 
Universal/Microcompu- 
ter/Processor Plugboard 
Use    With    S-100    Bus. 
Complete  With  Heat  Sink 
&  Hardware. 

5.3"  «  10"  X  1/16" 
$19.95 

8801-1 
Same    as    B80V    Except 
Plain,  Less  Power  Buses 
&  Heal  Sink. 

$15.95 

P  Pattern  Plugboards  For 

I.C.'s.  Epoxy  Glass  1/18" 

44  Pin.  Connector  Space 

.156 

3662  6.5"  X  4.5".... $7.65 

3662-2  9.6"  X  4.5"  $11.45. 


Hl-Denslty  Oual-ln-Llne 
Plugboard  For  Wire  Wrap 
With  Power  &  Grd.  Bus 
Epoxy  Glass  1/16"  44  Pin 
Con  Spaced  .156 
3682  9.6"  X  4.5" .  .  $10.97 
3682-2  6.5"  x  4.5...  $9.81 

Gen  Purpose  D.I. P. 
Boards  With  Bus  Pattern 
For  Solder  Or  Wire  Wrap. 
Epoxy  Glass  1/16"  44  Pin 
Con.  Space  .156 
3677  9.6"  x  4.5" . .  $10.90 
3677-2  6.5"  x  4.5... $9.74 

3690-12 

Card  Extender 

Card  Extender  Has  100 

Contacts  50  Per  Side  ON 

.125  centers.     Attached 

Connector  la  Compatible 

With  S-100  Bus  Systems 

$25.83 

3690 

6.5"  22/4  Pin  .158  Centers 

Extenders. 

$13.17 


DISK  DRIVES 

MPI  B51  5  1/4  " $295.00 

Single  or  double  density,  up  to  40 
tracks,  track  to  track  access  time 
only  5ms. 

MPI  B52  5  1/4"   $450.00 

Double  head  version  of  MPI  B51 

Shugart  SA400  5  1/4" $325.00 

Single  Density,  35  Track 

Siemens  FDD100-B  8" $495.00 

Shugart  801 R  replacement,  Single  or 
double  density,  runs  cooler  and 
quieter. 

Siemens  FDD200-8  8" $575.00 

Double  head  version  of  FDD100-8 
capable  of  double  density,  double 
sided  storage. 

Shugart  801 R  8  " $875.00 

Hard  or  soft  sectored,  400K  BYTE 
drive. 


NOVATION    CAT  Midsummer 

ACOUSTIC  MOD6M  S(3ecial 

features  Include:  300  Baud 
flnsuuer/OrlginQtc,  Sell  103,  Comes    $189.00 
Rssembled  and  Tested 


"^^   Computer  Products 

4901  W.  ROSECRANS  AVE.,  HAWTHORNE,  CALIFORNIA,  90250 

ORDER  TOLL  FREE 
800-421-5809  ^g        800-262-1710 

CONTINENTAL  U.S.       ^1     INSIDE  CALIFORNIA 

WRITE  FOR  OUR  FREE  CATALOO 

Cash,   checks,    money   orders,   and   credit   cards  acccpieu 
Minimum  order:  S10  00.  California  residents  add  6     sales  lax 
Minimum  shippmg  and  handling  charge:     S2.50.    Discounts 
available  at  OEM  quanlilics 


■  Two   Drives   Siemens/ 
GSI  8"  Floppy 

■  Power  Supply  for  Above 

■  Jade    Double    Density 
Board  (KIT) 

■  CP/IVI  Operating  System 
with  Basic  E 

■  Package  of  10  Blanl<  8  " 
Disl<ettes  (Double  Density) 

■  Includes     Interface 
Cables 

Price     if     Purchased 

Seoaratelw 

S1544.95 

Jade    Special    Pacl<age 

Deal 

$1225.00 


FLOPPY  DISK  INTERFACE 

JADE     FLOPPY    DISK    (Tarbell 
board) 

Kit  $195  00 

Assembled  &  Tested        S250  00 


S.D.  Computer  Products 
VERSA-FLOPPY 

K't  S159.95 

Assembled  &  Tested       $239  00 


uista  U80 
mini  DISH 

SYSTEM 
FOR  TRS—80 
$395.00. 


Includes  disk  drive,  power  supply, 
regulator  board,  and  compact  case. 
The  V-eo  olters  23%  more  storage 
capacity.  Simply  lake  it  out  o(  the  box. 
plug  in  the  cable,  and  it's  ready  to  run. 
Requires  16K.  Level  II.  expansion 
interface. 

Interface  Cable  . .  $24.95 


circle  195  on  Inquiry  card. 


BYTE  August  1979         249 


Circle  340  on  inquiry  card. 


C/MOS  (DIODE  CLAMPED) 

4033  ' 

<024  - 

4025  - 

4027  - 

403S  - 


74C93    - 
74C16I  - 

74C1B?- 


JM    -      .32       4D39    - 
)12    -      .J!      J030    - 


4016  -     ■ 

4017  - 

4018  - 

4019  ~ 

4020  -     ■ 

4022  -     ■ 


40*4  - 
4049  - 
40fiO    - 


34C0Q- 
74C03- 
74C0fl- 
74C10- 
74C20- 
74C43- 

74C74  - 
74C83- 

74C86-- 


74C17B- 
74Clfl3  - 
74C901  - 
74C902  - 
74C014  - 


14SS  RS»;  lUTERI 


giaO  -  2  95  BTJBO-  2.!6 


iCHVSTALS  S3  45  m 

2.000  MHz  6,144  MH; 
4,000  MHz  8,000  MHz 
3,57  MHz  10.000  MH 
5.000  MHz  20.000  MHz 
6.000  MHz 


RIBBON  CABLE 

AT  (COLOR  CODEDI 

*30  WIRE 
!G  conn,    -  ,i30/uer  tool 
10  cona.    -  .75/per  foot 
)0  cond.    ■  .90/per  loot 


CTS  206-8  eighi  position  dip  switch $1.60 

CTS  206-4  four  position  dip  switch $1.45 

LIGHT  ACTIVATED  sen's  10  18.  200y  1A.   .$.70 

SILICON  SOLAR  CELLS 
1"  dianneief  .4V  at  1  AMP $10.00 

FND  359C.C..4'S.60    LED  READOUTS 
FCSao^d     4  (J. in  DL-704  C.A.  .3"      S   .75 

C  C.  S"  .liioliiv  S5  95DL747C,A     6-      $1.50 

FNDb03CC.  ■)■■  $  .85  HP3400  .8"CC  $1.95 
FND510C.A  5- S  85  HP3405 .8"CA  Sl.95 
DL  704    3"  C  C        S    .05 


at:  FOB  CambfMge.  Mast. 
Swnj  Cli«:k 
Includ*  Pen 


PRINTED  CIRCUIT  BOARD 


X  6"  DOUBLE  SIDED  EPOXY 
BOARD  1/16"  thick 
S.eOea 5/S2,60 


7WATTLD-65LASERDIODEIR   $a95 


2N3820PFET  S    45 

2N  5457  ^J  FET  S    45 

2N2646  LJJT  $   .45 

ER  900  TRIGGER  OlODES  4    SI  00 

^2^02^RO^Ui^^^^^^^^^65^^ 
MINIATURE  MULTI-TURN  TRIM  POTS 
100,  IK,  2K,  5K,  10K.20K,  50K. 
200K.  IMeg.  2Me9,  $.75  each  3/$2.00 

25  wati  Infra  Red  Pulse 

Loser  Diode  (Spec  sheet  included)  S24.95 

VERIPAX  PC  BOARD $  12.95 

Our  new  Proioivping  is  a  hi  densitv  4>i"  x  6'/j" 
single  sidoct  1/16"  cpoxy  board.  It  will  hold  40. 
24,  16  (34  units).  14  +  8  pin  IC's.  There  are 
throe  busses,  f5V,  ground  and  a  floating  tiuss. 
There  is  n  p.irt  for  a  TO-220  regulnttjr.  There  is  a 
22  pin  edqc  connocior  with  .156"  spacing. 

FP  1 00  PHOTO  TRANS S  .50 

RED,  YELLOW,  GREEN 

LARGE  LED's.  2'' 6/$l  .00 

TIL-1 18  OPTOISOLATOR $  .75 

MCT-6  OPTO  ISOLATOR S  .80 

1   WATT  ZENERS:  3,3,  4.7,  S.l,  5.6.  9.1, 

10,  12,  15,  18,  or  22V 6/S1.00 

MCM  6571A  7x9  character  gen  .  .  $  10.75 

UNIVERSAL  4Kx8  MEMORY  BOARD  KIT 
S69.9S 

32-21021  fully  buffered.  16  address  lines,  on 
board  decoding  for  any  4  of  64  pages,  standard 
44  pin  buss,  may  be  used  with  F-8  &  KIM 


TRANSISTOR  SPECIALS 

2N6233NPN  SWITCHING  POWER     $  1-95 
MRF-8004aCB  RF  Traniiitor  NPN    «    -75 

?.N3";??  NP.\  S.  TO  3  S  1.00 

2N1546  PNP  GE  TO-3 S      .75 

'.'N/imn  I'INJP  Si    10  3  S   1  (10 

2N5086  PNP  Si  TO  92  4  S    1  00 

2N3137  NPN  SI  RF $    .55 

3N3919  NPN  Si  TO  3  RF  SI  50 

2N1420  NPN  Si  TO  5     3/$    1 .00 

2N376?  NPN  Si  TO  66  .  S       70 

2M2222'NPN  Si  TO  18  5  S    1  00 

3N3055  NPN  Si  TO  3  .  S      .50 

2N3304  NPN  Si  TO  9?  6/$   1.00 

2N3905  PNPS.  T0  92  .     6/$   1.00 

2N5296  NPN  Si  TO-220  ,  S       50 

2N6100  PNP  Si  TO  220     .  .         S       55 

:'N::(i3H  cnp  Si  to  5       ...      5'S  1  00 

MPSA  13  NPN  Si 4/S    1.00 

TTLIC  SERIES 


silicon  Power  Rsctlllers 


)2  M      20.00 


HEDICON    1034  stage  a: 


RS232  DB  25P  male 

CONNECTORS      D8  2GS  female 
HOODS     .      ,   . 


$2.95 
-  S3. 50 
.  SI. 50 


REGULATORS 


323K  -  5V  3A  .   .S  5.75 

309K S  1.60 

723 $.50 

320T- 

5,  12,  or  15  V 
.   .   .$   1,40 


340K  -  12, 15 

or  24  V.   .   .   .$1.50 
340T-5,6,8,  12 

15,  18or  24V$  1.40 

78  MG S  1.35 

79  M 


DATA  CASSETTES  1/2  HR     S   .95 


MM53B7AA      .    .    CLOCK  CHIPS     ■    ■       -   S5-95 

M7001 S7.S0 

MM5369 $3.75 


ALC:0  MI'^JIATUHF.  TOGGLE  SWITC 
MIA  106  SPOT 
MTA  206  DPDT    .   . 
MTA  206  P-DPDT  CENTER  OFF 
MSU  206  P  DPDT  CENTER  OFF 
LEVER  SWITCH 


SOLID  STATE  SALES 

P.O.  BOX  74  B 

SOMERVILLE.  MASS.  02143  TEL.  (6171  547  7053 


m 


nn 


1.65 


.-92 


m 


3.30 


1.40 


DIP  SOCKETS 

e  pin  .17*24  PIN  .35 

14  PIN  .20   ?fl  PIN  .40 

16  PIN   .22   ■'0  Pin  .60 
18  PIN   .25 


SANKEN  AUDIO  POWER  AMPS 

Si  1010  G  10  WATTS.  .    $   7.80 

Si  1030  G  20  WATTS        .      .  $15.70 

Si  1050  G  50  WATTS-.  .  $28,50 


TANTULUM  CAPACITORS 


.22UF  35V  5/Sl.OO 
.47UF  35V5/$1.00 
.68UF  35V5/$1.O0 
1UF  35V  5/$1.00 
2.2UF20V5/S1.00 
3.3UF  2OV4/$1.0O 
4.7UF  15V  5/$1.00 


6.8UF  35V4/S1,00 
lOUF  lOV  S.25 
22UF  25V  S  .40 
15UF  35V  3/$  1,00 
30UF  6V  5/Sl.OO 
150UF  15V  $.95 
47UF    20V  $.35 

68UF   15V        $  ,50 


WE  SHIP  OVER  95% 

OF  OUR  ORDERS  THE 

DAY  WE  RECEIVE  THEM 


r^^O^OFF  20%0FF 


YOUR  OWN  TRS-80  SYSTEM  AT  TREMENDOUS  SAVINGS 


REG. 
PRICE 


OUR 
PRICE 


$  698.00       $  628.20 


OTRS-80  Complete  System      DISK  DRIVES  NOW  IN  STOCK! 

Includes:  CPU/ Keyboard,  Power  Supply, 
Video  Monitor,  Cassette  Recorder,  Manual, 
and  Game  Cassette. 

^Llne  Printer 
^Mini  Disk  System 
OC-10  Cassettes 
@ Verbatim  Diskettes 


ITEM 

TRS-80  Complete  System 
Level  II  -  4K  RAM 
TRS-80  Complete  System 

Level  II  16  K  RAM  $  988.00 

Expansion  Interface  $  299.00 

Pertec  FD200  Mini  Disk  Drive  $  495.00 

Centronics  779  Printer  $1599.00 

Centronics  101  Printer  $1595.00 

Anadex  DP-8000  Printer  $1295.00 

Centronics  PI  Printer  $  534.00 

Trendata  1000  $1495.00 

Memory  Kit-(16K)  $  199.00 
•FREE  INSTALLATION 

Verbatim  Diskettes  ea.  $      5.95 

3  $     17.89 

10  $     59.00 

Maxell  Diskettes      ea.  $     10.00 

3  $     30.00 

10  $   100.00 

C-10  Cassettes          5  $       4  95 

25  $     24.75 

C-30  Cassettes         12  $     29.95 
Paper  (9'/2"x  IV'fantold. 
3500  sheets) 

Model  List  Price      Our  Price 

Level  II— 4K  $698.00         $628.20 

Level  II— 16K  $988.00         $889.20 

Expansion  interface     $299.00         $269.10 


$  889.20 
$  269.10 
$  385.00 
$1175.00 
$1400.00 
$  995.00 
$  445.00 
$1295.00 
$     98.00 


4.95 
12.00 
37.00 

7.50 
21.00 
60.00 

4.50 
18.75 
23.95 


$    35.00       $     29.95 


Comprehensive  circuit  analysis  for  your  system 

•  RAM — tests  for  Random  Access  Memory 
errors 

•  ROM — tests  for  Read  Only  Memory  errors 

•  CPU — tests  for  errors  in  Processor  func- 
tions 

•  I/O — tests  for  Input/Output  errors  in  peri- 
pheral equipment 

The  one  "necessity"  for  any 
TRS-80  system — use  as  pre- 
ventive maintenance  for  de- 
tecting circuit  malfunctions 
and  as  a  diagnostic  tool  for 
pinpointing  hardware  problems. $34a95 

There  are  new  developments  every  day — 
write  or  call  for  the  latest  information. 


Outlet  Hours: 


Mon.-Fri.;  9  am. — 7  pm. 
Sat.  12— 5  pm. 


5)aJa. 


777  Henderson  Boulevard  N-6 
Folcroft  Industrial  Park 
Folcroft  PA  19032 
(215)  461-5300 


Classroom  Instruction  offered  in  Level  II  Basic— $49.95;  and  DOS/Disl(  Basic— $69.95 


t  H  I  I  I  1 1  1 1 1 t  I  11 1 1  it  I  I  I  I  I  11  1 1 1 1 H I T  j 


250       BYTE  August  1979 


Circle  384  on  inquiry  card. 


10-DAY  FREE  TRIAL 


Send  for  our 
FREE  Catalog 


4K  -  Keyboard  C $  595 

BK  ■  Keyboard  C $  795 

16K  -  Keyboard  B $  995 

16K  -  Keyboard  N $   995 

32K  -  Keyboard  C $1195 

32K  •  Keyboard  B $1 195 

32K  -  Keyboard  N $1195 

C  —  calculator  keyboard  (only  version  with  tape  deck) 
8  —  large  business  keyboard  without  graphics  symbols 
N  —  large  keyboard  with  graphics  symbols 


$100  FREE  ACCESSORIES 
WITH  16K  or  32K  PET 

T/C  2001  PET  TERMINAL  OPTION 
PET  ACCESSORIES 


Commodore  Dual  Floppy  Disk  Drive $1295.00 

New!  PET  Terminal  Package  S69.00 

Second  Cassette  —  (rom  Commodore S95.00 

Commodore  PET  Service  Kit $30.00 

Beeper  -  Tells  when  tape  is  loaded  $24.95 

Petunia  ■  Play  music  from  PET $29.95 

Video  Buffer  -  Attach  another  CRT  $29.95 

Combo  -  Petunia  and  Video  Buffer $49.95 

New  Serial  Printer  Interface  for  PET $79.95 

Integral  Data  Printer  w/new  interlace $678.95 

PET  -  Compatible  Selectric  in  Desk   $895.00 

TTY  KSR-33  Screen  Prmter  for  PET  . .  -CTSS-  $395.00 
Originale/Answerback  Modem  for  PET  TT... $320.00 

Bi-directional  RS-232  Interface $280.00 

Betsi  4-slot  S-100  Ivlotherboard $160.00 

S-100  PET  Interface  was  $289.00  SALE  $99.00 


Qpple  II 

200  FR€€  flCCCSSORICS 


Buy  a  48K  Apple  II.  mention  this  ad  and  take  S200  in 
accessories  free  (if  ordered  together).  This  offer  is  good 
for  $150  on  32K  and  $100  on  16K  Apple  ll's.  Now  you  can 
enjoy  more  of  the  best  for  less. 

16K  Apple  II  —  $1 195  {fake  $100  in  free  accessories) 
32K  Apple  II  —  $1345  (take  $150  in  free  accessories) 
48K  Apple  II  —  $1495  (take  $200  in  free  accessories) 

Apple  II  Accessories 

Centronics  Printer  Interface  9225 

Disk  and  Controller $595 

Second  Disk  Drive $495 

Parallel  Printer  Card  $180 

Communications  Card   $225 

Hi-Speed  Serial  Card $195 

Firmware  Card $200 

Hobby/Proto  Card $24 

Microverter  RF  Mod $35 

San/o  M2544  Recorder $55 


^\'^    CENTRONICS  PRINTERS 
'^iS^^     UP  TO  76%  OFF  LIST 


We  had  purchased  an  entire  truckload  of  Centronics  printers  and  terminals  and 
when  the  semi  arived  we  were  amazed.  Used  Centronics  were  stacked  from  floor 
to  ceiling  and  from  end  to  end!  We  realized  that  we  have  to  move  these  terminals 
and  printers  fast.  So  we're  offering  these  reconditioned  Centronics  at  incredibly 
low  prices.  However,  some  models  are  in  limited  quantities  and  the  779  and  703 
models  are  already  gone!  Call  today  to  get  in  on  this  great  opportunity 


MODEL 

301 

306 

306C 

306SC 

308 

330 

500 

500D 

501 

508 

530 

700 

701 

703 

761 


SPEED 

(1pm) 

70-175 
60-150 
55-145 
55-145 

165 

165 
40-150 

120 
50-175 

165 

165 
13-90 
25-120 
70-370 

60 


WIDTH 
(col's) 

80 

80 
80-132 
80-132 
80-132 
80-132 

132 
132-218 

132 

132 

132 

132 

132 

132 

132 


PRINT 
MATRIX 

5x7 
5x7 
5x7 
Dual 
5x7 
9x7 
5x7 
5x7 
5x7 
5x7 
9x7 
5x7 
5x7 
7x7 
7x7 


Character  Elongation 
Character  Elongation 
Variable  Density 
Variable  Density 
Teleprinter 
Teleprinter  96  char 
Character  Elongation 
Multiple  Form 
Character  Elongation 
Teleprinter 
Teleprinter  96  Char 
Character  Elongation 
Char  Elong.,  Bidirectional 
Char  Elong..  Bidirectional 
Teleprinter  Bidirectional 


"Model  761  includes  Keyboard 


779 
780 
781 


21-90         80-132  5x7       Variable  Density 

21-90  80  5x7       Character  Elongation 

43-120  80  5x7        Char  Elong..  Bidirectional 


CENTRONICS 
LIST 

$2,275 
2.055 
2.360 
3.950 
3.100 
2.700 
2.995 
3.200 
3.315 
4.110 
2.950 
1,520 
1.815 
2.805 
1.850 


1,250 
1.905 
1,980 


WORKING' 
PRICE 

$595 
595 
695 
695 
715 
550 
750 
750 
750 
775 
900 
660 
695 


90-DAY= 

WARRANTY 

PRICE 

$695 

696 

795 

795 

815 

650 

850 

850 

850 

876 
1.000 
1.075 
1.175 


SOLD  OUT 

695  1.025 


SOLD  OUT 

995  1,095 

995  1.125 


All  machines  require  a  parallel  interface  except  the  330.530  &  761  models  which  require  serial  interfaces. 
All  machines  feature  64  character  ASCII  code  unless  otherwise  indicated. 


1.  Guaranteed  in  working  condition  when  shipped   Comes  with  a  10-day  free  trial 

2,  Comes  with  a  10-day  free  trial  and  our  90-day  limited  warranty. 


INTERFACES  AVAILABLE  FOR 
CENTRONICS  PRINTERS 


TRS-80 


SORCERER 


S-100 
COII/IPUTERS 


CRT 
TERMINALS 


Serial  versions  can  use 
the  GPA  TRS-80  intertace 
($69,95  from  NCE)  or  the 
Radio  Shack  Expansion 
unit.  Parallel  versions  use 
the  Radio  Shack  Expan- 
sion unit. 

Serial  Versions  can  use 
the  GPA  PET  interface 
($79,95  from  NCE). 

Serial  versions  can  use 
the  Apple  Serial  Card 
($195.00  from  NCE).  Paral- 
lel versions  can  use  the 
Apple  Centronics  Card 
($225.00  fron  NCE), 

No  hardware  is  required 
for  serial  versions,  a  cable 
($24.95  from  NCE)  is  re- 
quired for  parallel  ver- 
sions. 

Cromemco  and  others 
make  interfaces  for  both 
parallel  and  serial  ver- 
sions of  the  Centronics 
Printers. 

Our  Centronics  Printers 
can  be  connected  to  a 
Hazeltine  1510  or  1520 
with  a  cable  ($50  from 
NCE).  Contact  us  for  use 
with  other  terminals. 


NCE/CompuMart 


# 


SELLING  COMPUTERS 
BY  MAIL  SINCE  1971 


1250  North  Main  Street,  Department  BY89 
P.O.  Box  8610  Ann  Arbor,  Michigan  48107 


IMPORTANT  ORDERING  INFORMATION 
All  orders  must  include  4%  shipping  and  handling.  Michigan  residents 
must  also  add  4%  for  state  sales  tax.  All  foreign  orders  (except  Canada) 
need  an  additional  10%  for  shipping  and  handling.  We  cannot  process 
your  order  without  these. 


(313)  994-3200 


Phones  open  from  9:00  a.m.  to  7:00  p.m.  EST  Monday-Friday,  10:00  a.m.  to 
5:00  p.m.  Saturdays  •  P.O.'s  accepted  from  D  &  B  rated  companies  —  ship- 
ment contingent  upon  receipt  of  signed  purchase  order  •  Open  accounts 
invited  —  call  for  credit  application  •  Most  items  in  stock  for  immediate 
shipment  —  call  for  delivery  quotation  •  Sorry,  no  C.O.D.'s  •  All  prices 
subject  to  change  without  notice  •  in  the  Ann  Arbor  area?  Retail  vtore  open 
11:00  a.m.  to  7:00  p.m.  Tuesday-Friday,  10:00  a.m.to  5:00  p.m.  Saturdays 
(Closed  Sunday  and  Monday) 


Circle  284  on  Inquiry  card. 


BYTE  August  1979        251 


INTEGRATED  CIRCUITS  MICROPROCESSOR  LED'S  SOCKETS  CAPACITORS  DIODES  TRANSISTORS  RESISTORS  POTENTIOMETERS 

2 


< 
ui 

X 
M 
DC 
O 

I- 

u 

Ui 


o 
u 


M 

>- 
GC 
U 

lU 

X 

u 

S 

M 
UI 

3 
ca 

S 

lU 

w 

< 


< 

u 

m 

DC 

UJ 

a. 
S 

a. 

a 
{2 


M 

o 
o 


CO 

a. 


SS 

Ui 

t- 

w 
tc 

UJ 
Q 

_l 
O 
X 
UI 
M 
3 


(0 

z 

M 

I- 
< 
UI 
X 
M 

u 

Ui 

2 
2 
O 
o 

3 

< 

> 
cc 
u 


i 


im- 


electronic  components 


One-Stop  Component 
and  Kit  Center 


Jim-pak 

Component  Center 


JC600  HcKCidecifflcil 
Cncodcf  Kil 

FULL  8  BIT  LATCHED  OUTPUT  -  19  KEY  BOARD 

The  JE600  Encoder  Keyboard  provides  two  separate  hexadecimal  digits 
produced  from  sequential  key  entries  to  allow  direct  programming  for 
8  bit  microprocessor  or  8  bit  memory  circuits.  Three  (3)  additional  keys 
are  provided  for  user  operations  with  one  having  a  bistable  output  avail- 
able. The  outputs  are  latched  and  monitored  with  9  LED  readouts.  Also 
included  is  a  key  entry  strobe. 

FEATURES: 

•  Full  8  bit  latched  output 
for  microprocessor  use 

•  3  User  Define  keys  with  one 
being  bistable  operation 

•  Debounce  circuit  provided 
for  all  19  keys 

•  9  LED  readouts  to  verify 
entries 

•  Easy  interfacing  with  standard 
16  pin  IC  connector 

•  Only  +5VDC  required  for 
operations 


z 

CO 

H 
< 
UJ 

I 

M 

CC 

o 

1- 
u 

UJ 

2 
2 

o 
u 

CO 

-I 

> 
oc 
u 

(O 
UJ 

I 
u 

i 

CO 

CO 

UJ 

_J 

OB 

S 

UI 
CO 
CO 

< 


ffl 
< 
u 

CO 

oc 

UJ 

a. 
S 
3 
-s 
a. 
5 

CO 

I- 


cn 
O 

o 


CO 

0. 


CO 

oc 

UJ 

o 

-I 
O 
X 
Ui 
CO 

3 

LL 

CO 
^ 

Z 
CO 

H 

< 

UI 

X 
CO 

oc 
o 

I- 
o 

UJ 

z 
z 
o 
u 


CO 

>- 
OC 

u 

CO 

UJ 

X 

u 

3 

CO 


NOW!!!  OVER  300  AUTHORIZED  DISTRIBUTORS  . . .  HERE'S  JUST  A  SAMPLING: 


ALABAMA 

Mobile 

ALASKA 

Anchorage 

ARIZONA 

yuma 

CALIFORNIA 

Anaheim 

Amioch 

Bell  flower 

Berkeley 

Ftillerton 

Mission  Vieio 

Monterey 

Oceanside 

Palo  Alio 

Pasadena 

Sacramento 

Sacramento 

San  Carlos 

San  Diego 

San  Fernando 

San  Francisco 

San  Francisco 

San  Jose 

San  Luis  Obispo 

Santa  Ana 

Santa  Cruz 

Santa  Maria 

Santa  Monica 

Suisun  City 

Sunnyvale 

Vallejo 

Walnut  Creek 

COLORADO 

Aurora 

Darango 

CONNECTICUT 

Bridgeport 

DELAWARE 

New  Cattle 

FLORIDA 

Ft.  Lauderdale 

Hialeah 

GEORGIA 

Atlanta 

Columbus 

Stone  Mountain 

HAWAII 

Honolulu 

IDAHO 

Idaho  Falls 

ILLINOIS 

Evanston 

Groveland 

Mount  Prospect 


Lafayette  Radio  Electronics 


Yuma  Electronics 

Haathkit  Electronic  Center 

Radio  Mart 

Earl's  Hobby  Shop 

Al  Lasher  Electronics 

Orvac  Electronics  Inc. 

Tower  Electronics  Corp, 

Zackit 

Electronic  Center 

Zack  Electronics 

Dow  Radio  Inc. 

Heathkit  Electronic  Center 

Zackit 

J&  H  Outlet  Store 

Radio  Shack  A.S.C.  -Mira  Mssa 

San  Ferriando  Electronics 

Zack  Electronics 

Zenith  Distributing  Corp. 

United  Radio  S  TV  Supply 

Mid-State  Electronic  Supply 

Quality  Electronics 

Santa  Crux  Electronics 

Caps  Electronics 

Mission  Control 

Byte  Shop 

Sunnyvale  Electronics 

Zackit 

MicroSun  Computer  Center 


ILLINOIS  (Continuadl 

Oak  Park 

Rockford 

Schaumburg 

INDIANA 

East  Chicago 

Evansville 

IOWA 

Indianola 

KANSAS 

Sallna  Electronics,  Inc. 

Wichita      Amateur  Radio  Equipment  Company 

KENTUCKY 

Lexington  Radio-Electronic  Equipment  Co. 

Louisville       Peerless  Electronic  Equipment  Co. 

LOUISIANA 


Spec  tropics 
Computer  Store  of  Rockford 
Data  Domain 


Electronix  Limited 


e  Amateur  Supply 


Atlanta  Computer  Mart 

Radio  Wholesale 

Coleman's  Electronics 

Integrated  Circuit  Supply 


Tri-State  Electronic  Corp. 

Moyer  Electronics 

Tri -State  Electronic  Corp. 


Baton  Rouge 
Houma 
Metarie 
MARYLAND 
Annapolis 
Baltimore 
Churchville 
Damascus 
La  Vale 
Rockvilla 
Rockville 
Towson 
Towson 

MASSACHUSETTS 
Peabody 
Pittsfield 
Waltham 
Wellesley 
Worcester 
'  MICHIGAN 
Ann  Arbor 
Ann  Arbor 
Canton 
Clawson 
Detroit 
East  Detroit 
East  Lansing 
Flint 

Garden  City 
Grand  Rapids 
Lansing 
Lansing 
Livonia 


Pelican  Electronics 
Pelican  Electronics 
Pelican  Electronics 

J  &  M  Electronics 

Harco  of  BallirtwrB 

Churchville  Electronics 

Damascus  CB 

J  &  M  Electronics 

Computer  Workshop 

Heathkit  Electronic  Canter 

Baynesville  Electronics  Inc. 

Heathkit  Electronic  Center 

Heathkit  Electronic  Center 
Pittsfield  Radio  Co.  Inc. 

Computer  Mart  Inc. 
Heathkit  Electronic  Center 

RM  Electronics  Inc. 


MISSOURI 
El  Dorado  Springs 
MONTANA 
Billings 
Boieman 
NEBRASKA 
Lmcoln 
Lincoln 
Omaha 
Omaha 
NEVADA 
Las  Vegas 
NEW  JERSEY 
Brick  town 
Cherry  Hill 
Fair  Lawn 
Ocean 
Pennsauken 
Pompton  Lake 
Ramsey 
NEW  MEXICO 
Las  Cruces 
NEW  YORK 
Endwell 
Jericho 
■  Kingston 
New  York 


Beck  man  Electronics 


Altair  Computer  Center 

Scott  Electronic  Supply  Inc. 

Heathkit  Electronic  Center 

Omaha  Computer  Store 

Century  23 

Radio  Shack  Associate  Store 
The  Computer  Emporium 
Heathkit  Electronic  Center 
Heathkit  Electronic  Center 
Lafayette  Radio 
Computer  Center  of  N.J. 
Typetronic  Computer  Stare 


RHODE  ISLAND 
Cranston 

Pawtucket 

Warwick 

TENNESSEE 

Chattanooga 

Clark  svi  lie 

Cookeville 

Knoxville 

Nashville 

TEXAS 

Amarillo 

Dallas 


Jabbour  Electronics  City 
Jabbour  Electronics  City 

Heathkit  Electronic  Center 

Wflliam's  Data  Comp  Div. 

Massironics 

Wagnon's  Stereo  Center 

Eastern  Micro 

Electra  Distributmg  Co. 


■■  Electronic  Supply 


Midland 

Niles 

Oak  Park 

Sterling  Heights 

MINNESOTA 

Duluth 

Hopkins 

St.  Paul 


Eric  Electronics 

Wedemeyer  Electronic  Supply 

Electronic  Connection 

Radio  Supply  &  Engineering 

I       Haathkit  Electronic  Center 

Heathkit  Electronic  Center 

Eric  Electronics 

Hobby  Electronic  Center 

Computer  Center 

Radio  Parts  Inc. 

Fulton  Radio  Supply  Co. 

Wedomoyer  Electronic  Supply 

Eric  Electronics 

Radio  Supply  &  Engineering 

Computronix  Corp. 

Niles  Radio  Supply 

Eric  Electronics 

Eric  Electronics 

Northwest  Radio  of  Duluth 
Heathkit  Electronic  Supply 
Heathkit  Electronic  Supply 


Computer  Tree  Inc. 
Heathkit  Electronic  Center 
Grey  lock  Electronics 
Computer  Mart  of  New  York 
North  White  Plains  Heathkit  Electronic  Center 
Rochester  Haathkit  Electronic  Center 

Troy 
Uiica 

NORTH  CAROLINA 
Boone 
Durham 
Greensboro 
Raleigh 

NORTH  DAKOTA 
Fargo 
OHIO 
Bucyrus 
Cincinnati 
Columbus 
Reynoldsburg 
Youngstown 
OKLAHOMA 
Oklahoma  City 
Oklahoma  City 
OREGON 
Albany 
Coos  Bay 
Portland 

PENNSYLVANIA 
Drums  Mr.  D's  Digital  Electronics 

Hershey  Microcomputer  Systems  Inc. 

Philadelphia  Heathkit  Electronic  Center 

Pittsburgh  Heathkit  Electronic  Center 

York  C.Y.C.  Company 


Alpha  Digital  Systems 
Futureworld 
fiytaShop 
Byte  Shop  of  Raleigh 

The  Computer  Company 

Mead  Electronics 

Heathkit  Electronic  Canter 

Heathkit  Electronic  Center 

Universal  Amateur  Radio 

Ross  Radio  Company 


Oregon  Ham  Sales 

Herrick  Electronics 

Portland  Radio  Supply 

Computer  Pathways 


Dallas 

Houston 

Houston 

San  Ante 

San  Ann 

UTAH 

Mid  vale 

Provo 

VIRGINIA 

Alexandria 

Alexandria 

Black  sburg 

Charlottesville 

Falls  Church 

Hampton 

Norfolk 

Richmond 

Roanoke 

Virginia  Beach 

WASHINGTON 

Long  view 

Moses  Lake 

Seattle 

Seattle 

Seattle 

Spokane 

Tacoma 

WEST  VIRGINIA 

Morganiown 

Wheeling 

WISCONSIN 

West  Allis 

CANADA 

Alberta  I  Calgary  I 

Ontario  I  Toronto} 

Ontario  (Willowdalel 

Quebec  (Montreal I 

ENGLAND 

Berkshire 

GUAM 

PANAMA 

Panama  City 

SINGAPORE 


Computer  Encounters  Inc. 

CompuShop 

Heathkit  Electronic  Center 

CompuShop 

Interactive  Computers 

Appliance  &  Equipment  Ca. 

Sherman  Electronics  Supply  Inc. 


Computer  Hardware  Store 

Heathkit  Electronic  Center 

Scotiy  's  Radio  &  TV  Inc. 

Graves  Electronics 

Crossroad  Electronics 

Lafayette  Radio 

Avec  Electronics  Corp. 

Avec  Electronics  Corp. 

The  Computer  Place 

Heathkit  Electronic  Center 

Progress  Electronics 

Ron's  Electronics 

Riverview  Electronics 

Amateur  Radio  Supply 

CCom 

Empire  Electronics 

Personal  Computers 

OS  G  Electronics 


Olson  Electronics 

The  Computer  Store 

House  qI  Computers 

Home  Computer  Centre 

Wang's  Microcentor 


ASK  YOUR  ELECTRONICS  STORE  TO  STOCK  JIM-PAK®  TODAY!! 
JIM-PAK®     •    1021  HOWARD  AVENUE,  SAN  CARLOS,  CALIFORNIA  94070    •    (415)592-8097 


INTEGRATED  CIRCUITS  MICROPROCESSOR   LED'S  SOCKETS  CAPACITORS  DIODES  TRANSISTORS  RESISTORS  POTENTIOMETERS 


252       BYTE  August  1979 


Circle  203  on  inquiry  card. 


Circle  296  on  inquiry  card. 


COMMERCIAL    GRADE   PERIPHERALS   FOR    THE   MICROCOMPUTER 


PRINTER 
TERMINALS 


I"  •  •"": •    •  i  I  H 


MODEMS 


TAPE  DRIVES 


•ASCII  SELECTRIC  PRINTER/TYPEWRITER:  Why  settle  for  less  than 
letter-quality  printout  from  your  computer?  Refurbished  IBM  Model  725 
can  be  used  as  off-line  typewriter  or  on-line  printer.  Complete  with  solenoids, 
power  supply,  case  and  ASCII  interface  card  (TTL  to  CPU  parallel  port.) 
Interface  includes  programmable  ASCII  translation  table  on  EPROM  with  up  to 
8  tables  for  use  with  various  type  spheres.  Feedback  signals  on  completion  of 
each  print  cycle  insures  fastest  printing  speed  (15  cps.} 

Price:   programmed  w/3  translation  tables  (one  type  sphere): $695.00 

•SELECTRIC  I/O  TERMINALS  (by  GTE/Information  Systems).  Both  ASCII 
&  IBM  code  versions  with  microcomputer  interface  software  &  hardware  (RS- 
232  connector.)  Cassette  drive  models  permit  up  to  2400  baud  data  transfer 
rate  as  well  as  off-line  data  storage,  use  as  memory  typewriter,  &  use  as  data 
entry  device  for  office  personnel  familiar  with  Selectric  typewriters  but  not 
computers.  Wide-carriage,  interchangeable  type  spheres;  optional  built-in 
modem.   All  units  cleaned,  adjusted  &  warranted. 

Model  5541  (IBM  Correspondence  code) $695.00 

Model  5550  (corres.  code,  built-in  cassette  drive) $1195.00 

Model  5560  (ASCII  code,  built-in  cassette  drive) $1295.00 

•DIABLO  MODEL  1550  "DAISY-WHEEL"  TERMINAL:  Refurbished 
letter-quality  terminal  with  Hytype  I  printer  (30  cps),  full  ASCII  key- 
board, RS-232  serial  prot,  110,  150,  300  baud,  768  char,  print  buffer, 
software   controlled   graphics   mode    (1/60   in.   spacing),  built-in   stand. 

SHIP  WT.  200  lb.  Price,  refurbished:     $1895.00 

•  DIABLO  HYTYPE  I  Model  1200  PRINTER  MECHANISM:  used,  complete 
and   tested.      Requires  power  supply,  case  &  mCPU  interface.     15  day  return 

privilege  -  no  other  warranties.    LIMITED  QUANTITY!     $750.00 

~6'  Ribbon  cable  &  connector  for  printer  Main  Logic  PCB $10.00 

—  14-pin  Winchester  connector  &  18"  power  supply  cable $5.00 

-"As-is"  spare  printer  PCB's  for  parts  (Logic,  Heat  Sink,  Control):  ea.   $20.00 
-New  Pin-feed  Platen  (14"):   $50  if  bought  w/printer;  separately  .  .  .  $100.00 


•  POS  103/202  "MIX  or  MATCH"  MODEM:  BELL  103  and/or  BELL  202 
FREQUENCIES:  Unique  POS  control  design  permits  use  in  one  housing  of 
both  Bell-compatible  103  (0  -  300  baud)  and  202  (0  -  1200  baud)  modem 
modules  originally  made  by  VADIC  Corp.  for  a  telephone  corripany  subsidiary. 
FEATURES:  RS-232  serial  interface,  auto-answer,  auto-dial,  LED  display, 
telephone  line  interface  via  acoustic  coupler,  manual  DAA,  or  auto-answer 
DAA  (sold  separately.)  FULLY  ADJUSTED;  no  special  tools  required. 
3,000  mile  range  over  standard  dial-up  telephone  lines. 

-PQS  103  MODEM  (with  Auto  Answer,  Auto  Dial). $179.95 

-PQS  202  MODEM  (Half-Duplex  with  Reverse  Channel) $249.95 

-PQS  202  MODEM  (Half-Duplex  w/Rev.  Ch.,  Auto-Answer) $279.95 

-POS  103/202  MODEM  (Auto-Answer,  Auto-Dial) $399.95 

•  POS-100  NRZ1  TAPE  DRIVE  CONTROLLER/FORMATTER:  Designed  as 
interface  between  S-100  bus  mCPU  and  9-track,  800  BPI,  NIRZl  tape  drive. 
Allows  microcomputerist  to  read  and  write  IBM-compatible  VS"  mag  tapes. 
Software  provided  for  8080  or  Z-80  systems.  Requires  modification  for  drives 
of  various  mfrs. 

Price:  (Includes  S-100  card,  controller  card,  10' cable,  software  listing)  .  $750.00 
•NRZ1   TAPE   DRIVE  by  WILLARD  LABS.    9-track,  800  BPI,  NRZ1   format 

12"/sec.,  1200  ft.  reels  (10  megabyte  capacity)  Fully  tested  and  warranted  $599.00 
•CONVERT    15"    IBM    OFFICE    SELECTRIC    TO    I/O    TYPEWRITER:       Kit 

includes  assembled  solenoids,  switches,  wire  harness,  magnet  driver. PCB  plus 

instructions  for  installation  and  mCPU  interface $200.00 

•  DIGITAL  CASSETTE  DRIVE  (from  GTE/IS  Terminal):  1800  baud,  6"/sec; 
AC  motor;  fwd/rewnd  circuitry  plus  tape  head,  no  read/write  electronics    $25. 

•FORMS  TRACTORS,  Moore  Variable  width  "Form  A-Liner"  for  print  terminals: 

alModel  565P  for  1  5"  Carriage  IBM  Selectrics  (new): $50. QO 

b)Model  K81  for  QUME  or  DIABLO  Hytype  I  or  II  printers  (new):    ....  $90.00 

•POWER  SUPPLIES  for  Disk  Drive,  mCPU,  tested  under  load  shown: 
-No.  519  (w/fan  &  AC  cord):  -^5V  reg., +12V  reg.,  ■f24V,  @4A  (10  lb.).  .$39.95 
-LAMBDA  No.  LMEE5w/0V  protect:    -^5V  reg.  ®  25A  (35  lb.) $69.95 


NO  RISK!    15  DAY  APPROVAL  ON  ALL  MAIL-ORDERS. 


Full  documentation  included  PLUS  interface  instructions 
wftere  indicated.  All  equipment  is  shipped  insured  FOB 
Palo  Alto  within  14  days  after  check  clears  or  COD 
order  is  received.   Prices  may  change  without  notice. 


J^  PACIFIC  OFFICE  SYSTEMS,  INC.  ^ 

m      2600  El  Camino  Real,  Suite  502     m 


Palo  Alto,  Calif.   94306 
(415)  321-3866 


Call  or  write  for  details,  quantity  prices,  catalog,  15  day 
return  privilege  PLUS  90  day  no  charge  replacement  of 
defective  parts.  All  orders  shipped  from  stock.  No  back 
orders,  no  substitutions.   M/C  8i  VISA  accepted. 


ProComp/Nevi^  England 


720  Boylston  Street/Fourth  Floor 

Boston.  MA/02116         Phone    617-482- 4450 

HOURS:  M-F    10-5,  S  10-4 


^m^wmm 


Seattle  16K  Static  Ram 

Measurement  Systems  48  64K  Dynamic  Ram 

Micromation  Doubter  Disk  Controllers 

Computalker  CT-1 

Cromemco  Single  Card  Computer 

...AND  MORE 


Graham-Dorian 
Structured  Systems  Group 
National  Software  Exchange 
Selector  III 
...AND  MORE 


S^^ste 


Compucorp  625  Mkll  &  665 

Imsai  VDP42  &  VDP80 

Complete  Double  Density  Disk  Systems 


Diskettes 
Storage  Binders 
Printer  Ribbons 


a  SPECIAL   BARGAINS  ON  USED  EQUIPMENT  J!! 


□  Special  prices  on  these  and  other  in-stock  items  during  our  Grand  Opening  Sale 
now  through  September  30  th. 


o  Write,  call  or  stop  in  for  our  catalog  and  Grand  Opening  Sale  Price  List. 


a  VISA  and 
MASTERCHARGE 


\ 


Circle  69  on  inquiry  card. 


BYTE  Augusl  1979         253 


POB 


Electrotabs         n  e  w 

6721.Stanfacl,Ca94305    CATALOGUE 


AMSmCAN 


■0" 


FLOPPY  SYSTEMS 


TLX; 


'""'"415-321-5601 

800-227-8266 
345567 


Crystals 

Integrated  circuits 

Keyboards 

Lasers 

LSI-11 

Media 

RAMs 

S-1 00  Components 

Z-80  Components 


8"  Siemens  FDD  120-8  Drive 

All.  Siemen's  options  included 
In   this  drive  which   can   be  con* 
figured  hard  or  soft  and  single 
or  double  density.   (Others  give 
only   stripped  unit)     $399.00 


<^ 


"Power  One"  Model  CP206 
Floppy  Power  Unit  For  two 

drives  going  full-out,  and  poss- 
ably  more  on   less  severe  service, 
2.8A@i24V,   2.5A@i5V,    0.5A@>-5V. 
Beautiful  quality.  $99.00 


DISKETTES     (Standard) 


8" 

SV,'' 


Boxed   10 
Boxed   10 


$39.00 

$34.95 


Tarbell  ("It  Works")  Interface 
(Includes  cable  set  for  2  drives) 
$265.00       BUT  ONLY     $219.00 
with  purchase  of  two  drives. 

Cable  Kits  10'  with  50  cond. 
cable  and  connectors  and  also 
Molex  connectors  and  power 
cable:      For  one  drive:    $27.50 
For  two  drives:    $33.95,  and 
for  three  drives:      $38.95 


CABINETS     for  FDD120  and 
801 R   Drives,  or  CP206  power 
supply.  Matte  finish   in  mar 
resistant  black  epoxy  paint. 
Stacking  type  design.       $29.99 


ELECTRO  Labs  is  proud  to  aanounce  appointment  as 
DISTRIBUTOR  by  Cll-Honeywell  BulL 

PRICE  BREAKTHROUGH  on  SW£'i?Z)/5/:  lOMBYl  $3495.00 
General  purpose  controller  (requires  2  parallel  I/O  ports)      1500.00 

S-100  Controller  (DMA) 995.00 

"RL-01/RK-05"  surrogate 1900.00 

(transparent  to  RT,  RS,  RX) 

SOFTWARE:  (CP/M  Compatible) 

SUPERD0S1 

(Z-80) $695.00       MJ.^ 

MICR0D0S1 

(TRS-80)...  $199.00 
Power  supply  (switching) 

$395.00  *^^£™. 

Enclosure  (desktop)  ^^^■tt.«1 

$  99  00 
*  a^.uu  Removeable  Media  Caitiidge  Drive 


Used  Sylvania  12"  Video  Moni- 
tors. Composite  video  15mhz, 
115vac,  50/6011Z  New  Tube.  As 
shown  $109  OEM  style  without 
case:  $99,  Anti-glare  tube  option 
add  $12.  Specify  p4  or  p39 

ESAT  200B 


BILINGUAL  80x24 
COMMUNICATING 
TERMINAL 
Scrolling,  full  cursor,  bell, 
8x8  matrix,  110-19,200 
baud.  Dual  Font  Appli- 
cations. Arabic  &  Hebrew, 
Multilingual  Data  Entry, 


574" 
MINI-FLOPPY 
DRIVE 
$299.00 


-  single  or  double  dens- 
ity- quick  access  time 

-  high  reliability  8i 
durability 


Mini-floppy  CABLE  KIT: 
for  TRS-80  or  your 
Tarbell  controller. 
$24.95 


Daisy  Wheel  Printers 
Qume   Sprint:  3\45 


Print  wheels  S8.95        Ribbons  $5.95 


OEM  Style  mechanism  $1399.00 


Forms  Drawing,  Music  Instruction,  Specialized  Graphics  (e.g.  Games,  Chemical  Plants, 
Switchyards)  $349.00    We  carry  keyboards,  cases,  power  supplies,  etc.,  enough  to  make 
an  entire  system. 


254       BYTE  August  1979 


Circle  115  on  inquiry  card. 


P.O.  Box  4430X  Santa  Clara.  CA  95054 


RCA  Cosmac  Super  Elf  Computer  $106.95 


Compare  features  before  you  decide  to  buy  any 
other  computer.  There  is  no  other  computer  on 
the  market  today  that  has  all  the  desirable  beiie- 
fits  of  the  Super  Elf  for  so  little  money.  The  Super 
Elf  is  a  small  single  board  computer  that  does 
many  big  things.  II  is  an  excellent  computer  for 
training  and  for  learning  programming  with  Its 
machine  language  and  yet  it  is  easily  expanded 
with  additional  memory,  Tiny  Basic,  ASCII 
Keyboards,  video  character  generation,  etc. 
The  Super  Ell  includes  a  ROM  monitor  for  pro- 
gram loading,  editing  and  execution  with  SINGLE 
STEP  for  program  debugging  which  is  not  in- 
cluded in  others  at  the  same  price.  With  SINGLE 
STEP  you  can  see  the  microprocessor  chip  opera- 
ting with  the  unique  Quest  address  and  data  bus 
displays  before,  during  and  after  executing  In- 
structions. Also,  CPU  mode  and  instruction  cycle 
are  decoded  and  displayed  on  8  LED  indicators. 
An  RCA  1861  video  graphics  chip  allows  you  to 
connect  to  your  own  TV  with  an  inexpensive  video 
modulator  to  do  graphics  and  games.  There  is  a 
speaker  system  included  for  writing  your  own 
music  or  using  many  music  programs  already 
written.  The  speaker  amplifier  may  also  be  used 
to  drive  relays  for  control  purposes. 
A  24  key  HEX  keyboard  includes  16  HEX  keys 
plus  load,  reset,  run,  wait,  Input,  memory  pro- 
tect, monitor  select  and  single  step.  Large,  on 

Super  Expansion  Board  with 

This  is  truly  an  astounding  vaiuel  This  board  has 
been  designed  to  allow  you  to  decide  how  you 
want  it  optioned  The  Super  Expansion  Board 
comes  with  4K  of  low  power  RAM  fully  address- 
able anywhere  in  64K  with  built-in  memory  pro- 
tect and  a  cassette  Interface.  Provisions  have 
been  made  for  all  other  options  on  the  same 
board  and  it  fits  neatly  into  the  hardwood  cabinet 
alongside  the  Super  Elf.  The  board  includes  slots 
for  up  to  6K  of  EPROM  (2708,  2758.  2716  or  Tl 
2716)  and  is  fully  socketed.  EPROM  can  be  used 
for  the  monitor  and  Tiny  Basic  or  other  purposes. 
A  IK  Super  ROM  Monitor  $19.95  is  available  as 
an  on  board  option  in  2708  EPROIH  which  has 
been  preprogrammed  with  a  program  loader/ 
editor  and  error  checking  multi  file  cassette 
read/write  software,  (relocatible  cassette  file) 
another  exclusive  from  Quest.  It  includes  register 
save  and  readout,  block  move  capability  and 
video  graphics  driver  with  blinking  cursor.  Break 
points  can  be  used  with  the  register  save  feature 
to  isolate  program  bugs  quickly,  then  follow  with 
single  step.  The  Super  Monitor  is  written  with 
subroutines  allowing  users  to  take  advantage  of 
monitor  lunctions  simply  by  calling  them  up. 


board  displays  provide  output  and  optional  high 
and  low  address.  There  is  a  44  pin  standard 
connector  for  PC  cards  and  a  50  pin  connector  for 
the  Quest  Super  Expansion  Board.  Power  supply 
and  sockets  for  all  IC's  are  included  In  the  price 
plus  a  detailed  127  pg.  instruction  manual  which 
now  includes  over  40  pgs,  of  software  info,  in- 
cluding a  series  of  lessons  to  help  get  you  started 
and  a  music  program  and  graphics  target  game. 
Remember,  other  computers  only  offer  Super  Elf 
features  at  additional  cost  or  not  at  all.  Compare 
before  you  buy.  Super  Elf  Kit  $106.9S,  High 
address  option  $8.95,  Low  address  option 
$9.95.  Custom  Cabinet  with  drilled  and  labelled 
plexiglass  front  panel  $24.95.  Expansion  Cabinet 
with  room  for  4  S-100  boards  J41.00.  NICad 
Battery  Memory  Saver  Kit  $6.95.  All  kits  and 
options  also  come  completely  assembled  and 
tested. 

Questdata,  a  12  page  monthly  software  publica- 
tion for  1 802  computer  users  is  available  by  sub- 
scription for  $12.00  per  year. 


Attention  Elf  Owners 

New  products  In  hardware  and  software 
coming  soon. 


Tiny  Basic  cassette  $10.00,  on  ROM  $38.00, 
original  Elf  kit  board  $14.95. 

Cassette  Interface  $89.95 

Improvements  and  revisions  are  easily  done  with 
the  monitor.  If  you  have  the  Super  Expansion 
Board  and  Super  Monitor  the  monitor  is  up  and 
running  at  the  push  of  a  button. 
Other  on  board  options  include  Parallel  Input 
and  Output  Ports  with  full  handshake.  They 
allow  easy  connection  ol  an  ASCI  I  keyboard  to  the 
input  port.  RS  232  and  20  ma  Current  Loop  for 
teletype  or  other  device  are  on  board  and  if  you 
need  more  memory  there  are  two  S-100  slots  lor 
static  RAM  or  video  boards.  A  Godbout  8K  RAM 
board  Is  available  for  $135.00.  Also  a  IK  Super 
Monitor  version  2  with  video  driver  for  full  capa- 
bility display  with  Tiny  Basic  and  a  video  interface 
board.  Parallel  I/O  Ports  $9.85,  RS  232  $4.50, 
TTY  20  ma  l/F  $1.95,  S-100  $4.50.  A  50  pin 
connector  set  with  ribbon  cable  is  available  at 
$12.50  for  easy  connection  between  the  Super 
Ell  and  the  Super  Expansion  Board. 
The  Power  Supply  Kit  for  the  Super  Expansion 
Board  is  a  5  amp  supply  with  multiple  positive  and 
negative  voltages  $29.95.  Add  $4.00  lor  shipping. 
Prepunched  frame  $7.50.  Case  $10.00.  Add  $1 .50 
for  shipping. 


Auto  Clock  Kit  $17.95 

DC  clock  with  4-.50"  displays.  Uses  National 
MA-1012  module  with  alarm  option.  Includes 
light  dimmer,  crystal  timebase  PC  boards.  Fully 
regulated,  comp.  instructs.  Add  $3.95  for  beau- 
tiful dari<  gray  case.  Best  value  anyv^ere. 


RCA  Cosmac  VIP  Kit      $229.00 

Video  computer  with  games  and  graphics. 
Fully  assem.  and  test.  $249.00 
All  VIP  options  avail,  week  deliv. 


Not  a  Cheap  Cloclc  Kit  $14.95 

Includes  everything  except  case.  2-PC  boards. 
6-. 50"  LED  Displays.  5314  clock  chip,  trans- 
former, all  components  and  full  instructions. 
Orange  displays  also  avail.  Same  kit  w/.SO" 
displays.  Red  only.  $21.95  Case  $11.75 


60  Hz  Crystal  Time  Base  Kit  $4.40 

Converts  digital  clocks  from  AC  line  frequency 
to  crystal  time  base.  Outstanding  accuracy.  Kit 
includes;  PC  hoard,  IC,  crystal,  resistors,  ca- 
pacitors and  trimmer. 


Digital  Temp.  Meter  Kit   $39.95 

Indoor  and  outdoor.  Switclies  back  and  forth. 
Beautiful.  50"  LED  readouts.  Nothing  like  it 
available.  Needs  no  additional  parts  for  com- 
plete, full  operation.  Will  measure  -100°  to 
-f200°F,  tenths  of  a  degree,  air  or  liquid. 
Beautiful  woodgrain  case  w/bezel       $11.75 


NiCad  Battery  Fixer/Charger  Kit 

Opens  shorted  cells  that  won't  hold  a  charge 
and  then  charges  them  up,  all  in  one  kit  w/full 
parts  and  instructions.  $7,25 


PROM  Eraser  win  erase  25  PROMs  in 
15  minutes.  Ultraviolet,  assembled    $34.50 


Rockwell  AIM  65  Computer 

6502  based  single  board  with  lull  ASCII  keyboard 
and  20  column  thermal  printer.  20  char,  al- 
phanumeric display,  ROM  monitor,  fully  expand- 
able. $375.00.  4K  version  $450.00.  4K  Assem- 
bler $85.00,  8K  Basic  Interpreter  $100.00. 
Power  supply  assem.  in  case  $60.00.  AIM  65  in 
thin  briefcase  with  power  supply  $485.00. 


TERMS:  $5.00  min.  order  U.S.  Funds.  Calllresldents  add  6%  lax. 
BankAmericard  and  Master  Charge  accepted. 
Shipping  charges  will  be  added  on  charge  cards. 


74airm 

TAOOH 
7402N 
7404N 
7409N 
74 1  ON 
741 4N 
74ZON 
n22H 
7430N 
7442N 
744  5N 
7447N 
7448N 
M&ON 
7474N 
7475N 
74S5H 
74S9N 
7490N 
7492N 
7493H 
7*9hH 
741 DON 
74I07N 
74121N 
74123N 
74I25N 
74145N 
74 1  SON 
74I5tN 
74154N 
74157N 
74IBIN 
74162N 
74163N 
74174N 
74175N 
74igDN 
7419ZN 
74ia3N 
7422 IN 
74298N 
7436SM 
7436GN 
74367N 

74Lt00  HL 

74LSOON 
74LS02N 
74LS04N 
74LS05N 
74LS08(( 
74LSfaN 
74LS13N 
74LS14N 
74LS20N 
741S22N 
74LS2BN 
74LS30H 
741.S33N 
74tS3eN 
74LS74N 
74LS75N 
74t.S90N 
74L593N 
74LS96N 
74LS107N 
74LSI12N 
74LS113N 
74LS132N 
74LS136N 
74LSIS1N 
74L5155N 
74LS157N 
74LS1G2N 
74LSie3N 
74LS174N 
74LS190N 
74LS22tN 
74LS258N 
74LS367N 

LINEAR 

CA304S 

CA3046 

CA306I 

CA30e2 

CA30S9 

LM301AN(AH 

Uri305H 

LM307N 

LM3aBN 

LM309H 

IM309K 

LM3t1K/N 

LM3t7T.'>( 

LM3IB 

IM320K.6 

LM323K'5 

LM320K-12 

LM320K-15 

LM320T-5 

LM32D1-S 

LM320T-12 

LM3Z0T-15 

LM324N 

LM33gN 

LM340K-5 

LM340K-8 

LM34aK-12 

LM340K-15 

LM340K-24 

LM340T-5 

IM340T-8 

1.M340T-1Z 

LM340T-15 

LM340T-I8 

LM340T'24 

I.M343H 

LM350 

LM37a 

LM377 


LIM37gM 
tJ«380N 
LU3S1 

LM382 
LM703H 

LM709H 
LM723H/N 

LM733N 

LM741CH 

LM74m 

LM747H/N 

LM74eN 

LM13D3N 

LM13a4 

LM1305 

LM1307 

LM13I0 

LM145S 

LM1800 

LMiei2 

LM1389 

LM2lt1 

LM2902 

LM39O0N 

LM3905 

LM3909K 

MC145BV 

NESSON 

NE555V 

NEBseA 

NE565A 

NEseev 

NE557V 

NE570B 

NE571B 

78L05  .6 

78108  .6 

79L05  .7 

78M05  .8 

75tOB  1,7 

7549 ICN  ,5 

7549ZCN  .S 

75494CN  ,a 

A  to  D  CONVERTER 

eOSBB  4.5 

870()CJ  13.9 

870ICN  15 S 

8750CJ  13.S 

10130  9.9 

9400CJWF  7.4 

iCL7103  9.5 

ICL7107  14.2 

8702  17.9 

CMOS 

CD34001  Fair.  .5 

CD4000  .1 

CD4001  .2 

CD4O02  .2 

CD4006  1.1 

CD4O07  .2 

CD400B  .2 

004009  .3 

CD4010  ,3 

C04011  .2 

CO4012  ,2 

CO4013  .3 

C040t4  .8 

CD401S  .8 

CD4016  .3 

C04017  ,9 

CD40ie  .9 

CO4019  .2 

CD4020  1.0 

C04021  1.0 

CD4022  .8 

C04023  .2 

CO4024  .7 

CWOZS  .2 

CO402B  1.5 

CO4027  .3 

CO4028  .7 

CD4029  1.0 

CO4Q30  .2 

CO403S  ID 

004040  1.0 

C04CM2  .7 

CD4043  .6 

004044  .6 

004046  1.6 

004049  .3 

004050  .3 

004051  1.1 
004060  1-4 
004066  -7 
0O4D68  .4 
004069  .4 
CD4O70  .4 
004071  .2 
CCM072  .2 
CD4073  ,2 
CD4075  .2 
CD4D76  1.7 
CD4D78  A 
CD40BI  .2 
C04062  .2 
CD4116  .4 
CD4490  5.5 
CD4507  1 .0 
CD4Saa  4.2 
CCMSIO  1-0 
CD4511  ,9 
CD4515  2.5 
CD4516  1,1 
CD4518  1.0 
CM520  1.0 
CD4527  1.5 
CD4528  .7 
CD4553  3.5 
C04566  2-2 


ready  to  hook  uo  writn  tnnslormer  ind 

swHcries.  Very  compjcl  ««h 

.50"  ind 

.94-  dioHs- 

IM100!A.  C  or  E  .50- 

1.99 

102P3  TranttornMr 

;.2S 

WA1010A,  Cor  6.84- 

11,95 

SpKliI  Innitormtr  and  ilx 

iwlli;tiii  whan  purcAuid 

w/modul> 

MA10D3  car  moduli  .3' 

gnsn  nuor.  dlipliy 

15.BB 

BTI3 
BT20 
8123 
8724 
BT25 
BT2B 


2102-1 

2102AL'4 

21L02-1 

21F02 

2104A-4 

21D7B-^ 


21 


2112-2 

2114L-3 

4t16 

251 3B 

MM5262 

MM5280 

MM5320 

MM5330 

P0411D-3 

PD4 110-4 

P5101L 

420aA 

82S25 

giL02A 

HD0 165-5 

MM57100 

GIAYGSSOO-I 

MCM6571A 

9368 

4100 


PROM 
1702A 

NB2S23 

N82S123 

NB2St26 

NB2S129 

HB2S131 

NSZSISe 

NB2S137 

2708 

DHB577 

8223 

271611 

2716  Ifilel 

CHrSTALI 

1  MMi 

2MHI 

4MHl 

5MHi 
10MHI 
16  MHz 
20MHI 
32MHI 
3276SMHE 
1.8432  MHi 
3,5795  MHz 
2.0100  MHi 
2.097152  MHi 
2.4S76  MHI 
3.2768  MHi 
5.0688  MHi 
5. IBS  MHi 
5.7143  MHi 
6.5536  MHi 


RESISTORS  V4  Mtt  5% 
l0p<[lypB  .03      I000p«rtype  .012 
25  per  type  .025     350  place  pack 
100  p«r  type  .015         Spertirpe  S.75 
KEYBOARDS 

56  key  ASCII  UybovO  kit        S67.50 
Fully  assemMed  77.50 

53  key  ASCII  kayboard  Ut  60.00 

Fully  assembled  70.00  Endosurt  14,95 
LEGS 

RedTOia  .15 

Green.  Yellow  T01B  .20 

Jumbo  Red  .20 

Green.  Ortnpe.  Yellow  Jumbo  .25 
aipllle  LED  MaunllBB  CNpi  8.S1.25 
(ssectttrtd-  amber,  green.  fcHow.  dear) 
UjNTIHENTAL  SPECIALTIES  In  ttock 
'complefe  line  o(  breadboird  lest  equip, 
HUX-ira  a  digll  Freq.  Ctr.  SIZS.as 
OK  WIRE  WRAP  TOOLS  In  itock 
PoflrtlB  Muitlmetsr  116.00 

DIGITAL  THERMOMETER  S48.50 
Salt.  oper.  General  purpose  or  medical 
32"-230°F.  Disposable  probe  cover 
i.2'  accuracy,  Comp.  Assy,  (n 
compact  case,  SwNehes  tiom  F'  to  Z'. 
COMPUTER  BOARG  KITS 
SK  RAM  Board  KD  1135.00 

4K  EPROM  Kit  114.95 

I/O  Board  KB  44.50 

&(1endei  eoard  w/connector  12,50 

16K  EPROM  board  kit  w/o  PROMS  74.50 

""    '  ""     "■        " $665.00 

415.00 
SPECIAL  PRODUCTS 
MM5865  Stopwatch  Timer     9.00 
PC  board  7.50 

SwKcbes  Mom.  Pustibunon     .27 
3  pos.  slide  iS 

Encoder     KD0165-5  6.95 

3  Digit  Unlvtral 
Conntar  Bowd  Ktl 
Operates  5-lB  Voti  OC  to  5  MHi 
lyp.  .12S- LED  display         lO.M 
Voles  Hluitad  iwtlcn  .50 

Pintronlct  iMA  Logic 


S 235-00 


J229.00 
$369.00 


3.50 
10.00 
16.00 


CLOCKS 

MM5309  3,0 

MM531I  3,6 

MM»12  4,B 

MMS313  3.6 

MM5314  3.9 

MM531S  4,0 

MM5316  5.0 

MMS318  3-6 

MM5369  2-1 

MM584t  14.4 

MM5B65  7.9 

CT7001  5,8 

OT7010  B.9 

CT7015  8.9 

MM5375AAn  3.9 

MM5375AB/N  4.9 

7205  16.5 

7207  7.5 

7208  15.9 

7209  4,9 
0S0026CN  3.7 
OS0056CN  3.7 
MM53t04  2.5 
MICROPROCESSOR 


A  wim  data     8.95      2143906 


CONNECTORS 

44  pin  edge 
100  pin  edge 
too  pin  edgg  W 

KEYBGARO  ENCODERS 

AY5-Z376 

AY5-3600 

74C922 

74C923 

HD0165-5 

IC  Tstt  Cllpi 


TRANSICTGRS 

2N1893 
2N2222A 
2N2369 
2N2904A 

2N2907A 
2N3a53 
2N363B 
2N3643 
2N3904 


Analynr  Kll 

Model  10  TrlpBer 

Expander  Kit 
Model  150  Bus 

Grabber  Kit 
Sinclair  3W  DIgll 

MuHlmeler  »3a.»3 

Clock  CiKfldir  Kn  123.95 

TRANSFORMERB 
6V300ma  3.25 

12  Von  300  malranslornHr   1.25 
12.6V  CT  600  ma  3.75 

12V  250  ma  will  plug  2.95 

S12S0    1ZVCT250maivallpli;g      3.50 
17  95    24V  CT  400  ma  3.B5 

5  SO    '"V  1 .2  amp  wall  plog  4.85 
5,50    12V  6  amp                         12.95 

6  95    OISPUYLEDS 
MAN1  CA  .270  2.90 
MAN3  CC  .125     .39 

IB       MAN72/74         CA/CA  .300  1.00 
.47       DL704  CC  .300  1-25 

.47  DL707/DL707H  CA  .300  1.00 
DL727/72B  CA/CC  .500  1.90 
DL747/750  CA/CC  .600  1.95 
0L7S0  CC  .600  1-95 

FN0359  ""    """      " 

FNO50W507 
FNOSOaSIO 
FHOBO0/BO7  ■ 
3  digit  Bubble 


CC  .357 
CC/CA  .500  1-35 
CC/CA  .500  .90 
CCCA  .800  2.20 


1.75 


3.00       CD4583 


8085 

ZBOA 

8212 

8214 

8216 

8224 

8228 

8251 

8253 

8255 

8257 

8259 

1802CP  plaa, 

IB02DP  plat. 

1B61P 

COP  180200 


2H3055 

2N4400 

2K4401 

2N4402 

TIP31 

TIP13A 


25  NSN69  9  digit  display 

'lB  7520  Clairex  photocells 

;ifl  TIL311  Haji 

09  COMPUTER  GRADE  CAPS 
25  1600  mid  200V 
75  2000  mtd  45V 
.20        3200  50V 

5500  25V 


1,0 


C0P1B61 


8.50 
10.00 

0  25 
19.50 
19-50 
13.95 
17,95 
11,50 
1995 
25,00 
T2.95 


6100 


12000 


Multi-volt  Computer  Power  Supply 

8v  Samp,  ±18v  .Samp.  5v  1.5  amp,  -5v 
.5  amp,  12v  .5  amp,  -12  option.  ±5v,  ±12v 
are  regulated.  Kit  $29.95.  Kit  with  punched  frame 
$37.45.  Woodgrain  case  $10.00. 


Video  Modulator  Kit  $8.95 

Convert  your  TV  set  into  a  high  quality  monitor 
without  affecting  normal  usage.  Complete  kit 
with  full  instructions. 


2.5  MHz  Frequency  Counter  Kit 

Complete  kit  less  case  $37.50 

30  MHz  Frequency  Counter  Kit 

Complete  kit  less  case  $47.75 

Prescaler  kit  to  350  MHz  $19.95 


79  IC  Update  Master  Manual  $3500 

Complete  IC  data  selector.  2500  pg.  master  ref- 
erence guide.  Over  50,000  cross  references.  Free 
update  service  through  1979.  Domestic  postage 
$3.50.  Foreign  $5.00.  1978  IC  Master  doseout 
$19.50. 


0  CDnmthifa  RSZ32 
25  Pin  Submlnlalures 
OB25P  2-! 
DB25S  3-< 
Cover  1.! 
RS232  ComplBtfi  Sn  6.50  35000 
DE9P  1.50  55000 
DE9S  1.95  B2000 
DA15P  2.10  fflflOO 
0A15S  3.10-i^ 
TtfOOOO 


Stopwatch  Kit  $26.95 

Full  six  diBit  battery  operated.  2-5  volts. 
3.2768  MHz  crystal  accuracy.  Times  to  59 
min.,  59  sec,  99 1/100 sec.  Times  std.,  split 
and  Taylor.  7205  chip,  all  components  minus 
case.  Full  instructions. 


Hickok  SVz  Digit  LCD  Multimeter 

Batt/AC  oper.  O.lmv-IOOOv.  5  ranges.  0.5% 
accur.  Resistance  6  low  power  ranges  0.1 
olim-20M  ohm.  DC  curr.  .01  to  lOOma.  Hand 
held.  V  LCD  displays,  auto  zero,  polarity,  over- 
range.  $69.95. 


S-100  Computer  Boards 

8K  Static  RAM  Kit  Godbout  $135.00 

16K  Static  RAM  Kit  265.00 

24K  Static  RAM  Kit  423.00 

32K  Dynamic  RAM  Kit  310.00 

64K  Dynamic  RAM  Kit  470.00 

8K/16K  Eprom  Kit  (less  PROMS)  $89.00 

Video  Interface  Kit  $139.00 
Motherboard  $39.      Extender  Board  $8.99 


FREE:  Send  lor  your  copy  ol  our  NEW  1979 
QUEST  CATALOG.  Include  28c  stamp. 


Circle  311  on  inquiry  card. 


BYTE  August  1979         255 


PER80M  SAMPLER 


^  r 


For  your  SS-50  bus  computer  —  the 
CIS-30+ 

•  Interface  to  data  terminal  and  (ivo  cas- 
sette recorders  with  a  unit  only  1/10 
the  size  of  SWTP's  AC-30. 

•  Select  30,  60,  or  120  bytes  per  second 
cassette  interfacing,  300,  600  or  1200 
baud  data  terminal  interfacing. 

•  Optional  mod  kits  make  CIS-30+  work 
with  3!)'^  microcomputer.  (For  MITS 
680b,  ask  for  Tech  Memo  TM-CIS- 
30+— 09.) 

•  KC-Standard/Bi-Phase-M  (double  fre- 
quency) cassette  data  encoding.  De- 
pendable self-clocking  operation. 

•  Ordinary  functions  may  be  accom- 
plished with  6800  Mikbug™  monitor. 

•  Prices:  Kit,  $79.95;  Assembled, 
$99.95. 

^Prices  include  a  comprehensive  instruction 
manual.  Also  available:  Test  Cassette,  Re- 
mote Control  Kit  (for  program  control  of 
recorders),  IC  Socket  Kit,  MITS  680b  mod 
documentation.  Universal  Adaptor  Kit 
(converts  CIS-30+  for  use  with  any  com- 
puter). MiKBUG®Motorola,  inc. 


In  the  Product  Development 
Queue  .  .  . 

Coming  PDQ.  Watch  for  announce- 
ments. 

6809  Processor  Card  —  With  this  SS-50 
bus  PC  board,  you'll  be  able  to  upgrade 
with  the  microprocessor  that  Motorola 
designers  describe  as  the  "best  8-bit 
machine  so  far  made  by  humans." 

The  Electric  Crayon™  —  This  color 
graphics  system  includes  its  own  \x?  and 
interfaces  to  virtually  any  microcomputer 
with  a  parallel  I/O  port. 

Printer  Interface  —  For  your  TRS-80™. 
Interface  any  serial  RS232  printer  to  your 
TRS-80™  with  this  system. 


'"ELECTRIC  WINDOW,  ELECTRIC  CRAYON.  Pilon- 
30  and  Pilon-10  are  trademarks  of  Percom  Data 
Company,  Inc. 

TRS-80  is  a  trademark  ot  Tandy  Corporation  and  Radio 
Stiack  whicti  tias  no  relationship  to  Percom  Data  Company 

Orders  may  be  paid  by  cbeck  or  money  order, 
or  charged  to  vita  or  Master  Charge  credit 
account.  Texas  residents  must  add  5%  tales 
tax. 


For  your  data  storage  —  Pilon-30^"  and 
Pilon-10^"  data  cassettes 

•  Orders-of-magnitude  Improvement  in 
data  integrity  over  ordinary  audio  cas- 
settes. 

•  Pilon-coated  pressure  pad  eliminates 
lint-producing  felt  pad  of  standard 
audio  cassettes. 

•  Smooth  pilon  coating  minimizes  erra- 
tic tape  motion. 

•  Foam  pad  spring  is  energy  absorbing. 
Superior  to  leaf  spring  mounted  pad 
which  tends  to  oscillate  and  cause  flut- 
ter 

•  Five-screw  case  design  virtually  pre- 
cludes deformation  during  assembly. 

•  Price:  $2.49. 


For  your  S-100  computer— the  CI-812 

•  Both  cassette  and  data  terminal  inter- 
facing on  one  S-100  bus  PC  board. 

•  Interfaces  (wo  recorders.  Record  and 
playback  circuits  are  independent. 

•  Select  30,  60,  120,  or  240  bytes  per 
second  cassette  interfacing,  110  to 
9600  baud  data  terminal  Interfacing. 

•  KC-Standard/Bi-Phase-M  (double  fre- 
quency) encoded  cassette  data.  De- 
pendable self-clocking  operation. 

•  Optional  firmware  (2708  EPROM) 
Operating  System  available. 

•  Prices:  kit,  $99.95;  assembled, 
$129.95. 

Prices  Include  a  comprehensive  Instruction 
manual.  In  addition  to  the  EPROM  Operating 
System,  a  Test  Cassette,  Remote  Control  Kit 
(for  program  control  of  recorders),  and  an  IC 
Socket  Kit  are  also  available. 


CASSEHE  SOFTWARE 

For  8080/Z-80  ^Cs  .  .  . 

BASIC  ETC  —  Developed  by  the  co- 
authors of  the  original  Tiny  BASIC,  BASIC 
ETC  is  easy  to  use  yet  includes  com- 
mands and  functions  required  for  power- 
ful business  and  scientific  programs  as 
well  as  for  hobby  applications.  9.5K  bytes 
of  RAM.  1200-baud  cassette  and  42-page 
user's  manual  $35.00 

Cassette  Operating  System  —  EPROM 
(2708)  COS  for  the  Percom  CI-812  dual 
peripheral  interfacing  PC  card  . .  $39.95 

If  you're  programming  on  a  6800  /xC, 
you'll  want  these  development  and  de- 
bugging programs  written  by  Ed  Smith  of 
the  Software  Works: 
Disassembler/Source  Generator  —  Dis- 
assembles SWTP  Resident  Assembler, 
TSC  Mnemonic  Assembler/Text  Editor  or 
Smoke  Signal  Mnemonic  Assembler/Text 
Editor  and  produces  compacted  source 
code  suitable  for  re-editing.  Prints  or  dis- 
plays full  assembly-type  output  listing. 
4K  bytes  of  RAM. 
(Order  M68SG)  $25.00 

Disassembler/Trace  —  Use  to  examine 
(or  examine  and  execute)  any  area  of 
RAM  or  ROM.  "Software-single-step" 
through  any  program,  change  the  con- 
tents of  CPU  or  memory  location  at  any 
time,  trace  subroutines  to  any  depth. 
2.3K  bytes  of  RAM. 

(Order  M68DT)  $20.00 

EPROM  Support/Relocator  Program  — 
This  program  relocates  a  program  in  any 
contiguous  area  of  RAM  or  ROM  to  any- 
where in  RAM.  Use  to  assemble  and  test 
programs  in  RAM,  adjust  programs  for 
EPROM  operating  addresses  and  then 
block  move  to  your  EPROM  burner  ad- 
dress. 952  bytes  of  RAM.  Loads  at  hex 
1000. 

(Order  M68EP) $20.00 

Relocating  Assembler  &  Unking  Loader 

(M68AS)   $50.00 

Relocating  Disassembler  &  Segmented 
Source  Text  Generator  (M68RS)  $35.00 

Americana  Plus  —  1 4  tunes  for  the  New- 
tech  Model  68  Music  Board  in  machine 
language  ready  to  load  and  run.  Cassette 
compatible  with  Percom  CIS-30-t-  and 
SWTP  AC-30.  Order  MC-1SW  . .  $15.95 

HARDWARE 

Newtech  (Model  68  Music  Board  —  Pro- 
duces melodies,  rhythms,  sound  effects, 
morse  code,  etc.  from  your  programs. 
Includes  manual  with  BASIC  for  writing 
music  scores  and  assembly  language 
routine  to  play  them .  I  nstalls  in  SWTP  I/O 
slot.  Assembled  &  tested  $59.95 

The  Percom  ELECTRIC  WINDOW™  — 

Memory-resident  and  programmable, 
this  video  display  character  generator 
board  for  your  SS-50  bus  displays  up  to 
24  80-character  lines.  Features  dual 
character  generators,  dual-intensity 
high-lighting.  One  programmable  regis- 
ter controls  scrolling.  Compatible  with 

standard  video  monitors  $249.95 

SS-SO  Prototype  Canls: 

Large  card  (up  to  70  40-pin  ICs)  $24.95 

I/O  size  card  $14.95 


PERCOM"^"  'peripherals  for  personial  computing' 


PERCOM  DATA  COMPANY,  INC. 

DEPT.B 

211N.KIRBY*  GARLAND,  TX.  75042 


To  order  products  or  request  additional  lit- 
erature, call  Percom's  toll-free  number: 
1-800-527-1592.  For  detail  technical  in- 
formation call(214)  272-3421. 


256       BYTE  August  1979 


Circle  301  on  inquiry  card. 


Circle  126  on  inquiry  card. 


Hie  D^UDtrllLlNS  1000 


A  completely  refurbished 
IBM  Selectric  Terminal  with 
built-in  ASCII  Interface. 


Features: 


$1395 


300  Baud 

14.9  characters  per  second 

printout 

Reliable  heavy  duty  Selectric 

mechanism 

RS-232C  Interface 

Documentation  included 

60  day  Avarranty- parts  and 

labor 

High  quality  Selectric  printing 

Off-line  use  as  typewriter 

Optional  tractor  feed  available 

15  inch  carriage  width 


HOWTO  ORDER 
DATA-TRANS  1000 

1 .  We  accept  Visa,  Master 
Charge.  Make  cashiers  checks  or 
jjersonal  check  payable  to: 

DATA-TRAXS 

2.  All  orders  are  shipped 
F.O.B.  San  Jose,  CA 

3.  DeUveries  are  immediate 


For  orders  and  information 


DATA-TRANS 

2154  OToole  St. 
UnitE 

SanJoscjCA  95131 
Phone:  (408)  263-9246 


MICAO- 

PROCESSORS: 

FROM  CHIPS  TO 

SYSTEMS 

This  bool<  cover  aii  as- 
pects of  microp- 
rocessors, from  tfie 
basic  concepts  to  ad- 
vanced interfacing 
techniques,  in  a  pro- 
gressive presenta- 
tion. It  is  independent 
from  any  manufac- 
turer, and  presents 
uniform  standard 
principles  and  design 
techniques,  including 
Che  interconnect  of  a 
standard  system,  as 
well  as  specific  com- 
ponents. It  intro- 
duces the  MPU,  how 
it  works  internally,  the 
system  components 
(ROM,  RAM,  UART, 
PIO,  others),  the  sys- 
tem interconnect, 
applications,  pro- 
gramming, and  the 
problems  and  tech- 
niques of  system  de- 
velopment. By  R. 
Zaks.  SYBEX.  Ref. 
C201.  S9.95 


MICRO- 
PROCESSOR 
INTERFACING 
TECHNIQUES 

Microprocessor  in- 
terfacing is  no  longer 
an  art.  It  is  a  set  of 
techniques,  and  in 
some  cases  just  a  set 
of  components.  This 
comprehensive  book 
introduces  the  basic 
interfacing  concepts 
and  techniques,  then 
presents  in  detail  the 
implementation  de- 
tails, from  hardware 
to  software.  It  covers 
all  the  essential  per- 
ipherals, from  key- 
board to  floppy  disk, 
as  well  as  the  stan- 
dard buses  (S100  to 
IEEE  488)  and  intro- 
duces the  basic  trou- 
bleshooting tech- 
niques. (2nd  Ex- 
panded Edition).  By 
Austin  Lesea  and  R. 
Zaks.  Ref.  C207 
SYBEX.  S11.95 


PROGRAMMING 
THE  6502 

PROGRAMMING 
THE  Z80 

PROGRAMMING 
THE  8080* 
It  covers  all  essential 
aspects  of  program- 
ming, as  well  as  the 
advantages  and  dis- 
advantages of  the 
6502  and  should 
bring  the  reader  to 
the  point  where  he 
can  start  writing 
complete  applications 
programs.  For  the 
reader  who  wishes 
more,  a  companion 
volume  is  available: 
The  6502  Applica- 
tions Book.  By  R. 
Zaks.  6502:  Ref. 
C202;  Z80:  Ref. 
C280;  8080:  Ref. 
C208.  SYBEX.  Each 
$10.95 


44  BUS  MOTHER 
BOARD 

Has  provisions  for  ten 
44  pin  (.156)  connec- 
tors, spaced  3/4  of  an 
inch  apart.  Pin  20  is 
connected  to  X,  and 
22  is  connected  to  Z 
for  power  and  ground. 
All  the  other  pins  are 
connected  in  parallel. 
This  board  also  has 
provisions  for  bypass 
capacitors.  Board 
cost  $15.00  Part  No. 
102.  Connectors 

$3.00  each  Part  No. 
44WP. 


AN  INTRODUCTION 

TO  PERSONAL AND 

BUSINESS 

COMPUTING 

No  computer  back- 
ground is  required. 
The  book  is  designed 
to  educate  the  reader 
in  all  the  aspects  of  a 
system,  from  the  se- 
lection of  the  mic- 
rocomputer to  the 
required  peripherals. 
By  Rodney  Zaks.  Ref. 
C200,  SYBEX  $6.95 


TVT COOKBOOK 

Bk  1064  —  by  Don 
Lancaster  Describes 
the  use  of  a  standard 
television  receiver  as 
a  microprocessor 
CRT  terminal.  Ex- 
plains and  describes 
character  genera- 
tion, cursor  control 
and  interface  Infor- 
mation in  typical,  easy 
-to-  understand  Lan- 
cascaster  style. 
$9.95 


COMPUTER      ^ 
PROGRAMMING 
HANDBOOK 

A  complete  guide  to 
computer  programm- 
ing &  data  process- 
ing. Includes  many 
worked-out  examples. 
By  Peter  Staak.  TAB 
$9.95 


DIGITAL 
CASSETTE 

5  min.  each  side.  Box 
of  10  $9.95.  Part  No. 
C-5. 


g 


iBH 


Tq  OrdSr  ■  '^^"'•'°"  P^'"'- "°-  dBscnption,  and  price.  In  USA  shipping  paid  by  us  for  orders  accompanied  by  check  or  money  order. 
We  accept  C.O.D.  orders  in  the  U.  S.  only,  or  a  VISA  or  Master  Charge  no.,  expiration  date,  signature,  phone  no., 
shipping  charges  will  be  added.  CA  residents  add  6.5%  for  tax.  Outside  USA  add  10%  for  air  mall  postage  and  han- 
dling. Payment  must  be  in  U.  S.  dollars.  Dealer  Inquiries  Invited.  24  hour  order  line  (408)  226-4064. 


Send  for  FREE  Catalog  . . .  a  big  self-addressed  envelope  with  41 'postage  gets  it  fastest! 


ELECTRONIC    SYSTEMS    Oept.  B,   p.  O.  box 21538,  SanJose,  causa 95151 


Circle  125  on  inquiry  card. 


BYTE  August  1979         257 


COMPUCRUISE 

Put  a  computer  in 
your  car,  which  gives 
you  the  most  effec- 
tive and  functional 
cruise  control  ever 
designed,  plus  com- 
plete trip  computing, 
fuel  management  sys- 
tems, and  a  remark- 
able accurate  quartz 
crystal  time  system. 
So  simple  a  child  can 
operate,  the  new 
CompuCruise  com- 
bines latest  computer 
^technology  with 
state-of-the-art  re- 
liability in  a  package 
which  will  not  likely  be 
available  on  new  cars 
for  years  to  come  • 
Cruise  Control  •  Time, 
E.T. ,  Lap  Timer,  Alarm 

•  Time,  Distance,  Fuel 
to  Arrival  •  Time,  Dis- 
tance, Fuel  to  Empty  • 
Time,  Distance  and 
Fuel  onTrip  •  Current 
or  Average  MPG, 
GPH«  Fuel  Used,  Dis- 
tance since  Fillup  • 
Current  and  Aver- 
age-Vehicle Speed  • 
Inside,  Outside  or 
Coolant  Temperature 

•  Battery  Voltage  • 
English  or  Metric 
Display  $199.95 


FLOPPY  DISK 
STORAGE  BINDER 

This  black  vinyl 
three-ring  binder 
comes  with  ten 
transparent  plastic 
sleeves  which  ac- 
commodate either 
twenty,  five-inch  or 
ten,  eight-inch  floppy 
disks.  The'  plastic 
sleeves  may  be  or- 
dered separately  and 
added  as  needed.  A 
contents  file  is  in- 
cluded with  each 
sleeve  for  easy  iden- 
tification and  organiz- 
ing. Binder  S  10  hol- 
ders $14.95  Part  No. 
BBOO;  Extra  holders 
95«  each.  Part  No. 
800 


OPTO-ISOLATED 

PARALLEL  INPUT 

BOARD  FOR 

APPLE  II 

There  are  8  in- 
puts that  can  be  dri- 
ven from  TTL  logic  or 
any  5  volt  source. The 
circuit  board  can  be 
plugged  into  any  of 
the  8  sockets  of  your 
Apple  II.  It  has  a  16  pin 
socket  for  standard 
dip  ribbon  cable  con- 
nection. 

Board  only  $15.00. 
Part  No.  120,  with 
parts  $69.95.  Part 
No.  120A. 


TIDMA 

•  Tape  Interface  Direct 
Memory  Access  •  Re- 
cord and  play  programs 
without  bootstrap  load- 
er (no  prom)  has  FSK 
encoder/decoder  for 
direct  connections  to 
low  cost  recorder  at 
1200  baud  rate,  and 
direct  connections  for 
inputs  and  outputs  to 
a  digital  recorder  at 
any  baud  rate  •  S-1 00 
bus  compatible  •  Board 
only  $35.00  Part  No. 
112,  with  parts  $110 
Part  No.  1 1 2A 


SYSTEM 
MONITOR 

BOBO,  8085,  or  Z-80 
System  monitor  for  use 
with  the  TIDMA  board. 
There  is  no  need  far  the 
front  panel.  Complete 
with  documentation 

$12.95. 


Hdw  to  Profit  from 
Your  Personal 

Computer: 
Professional, 
Business,  and  Home 
Applications 
'...useful  reading  for 
the  small  business- 
man, contemplating  a 
computer,  or  for  the 
personal    computer 
advocate  contemplat- 
ing a  business  appli- 
cation." Kilobuad.  By 
r.  G.  Lewis.  HAYDEN 
78-2780.  $8.95 


ASCII  KEYBOARD 

TTL  &  DTL  compatible  •  Full  67  key  array 

•  Full  128  character  ASCII  output  •  Positive 
logic  with  outputs  resting  low  •  Data  Strobe 

•  Five  user-definable  spare  keys  •  Standard 
22  pin  dual  card  edge  connector  •  Requires 
4-5VDC,  325  mA.  Assembled  &  Tested. 
Cherry  Pro  Part  No.  P70-05AB.  $135.00. 


ASCII  KEYBOARD 

53  Keys  popular  ASR-33  format  •  Rugged 
G-10  R  C.  Board  •  Tri-mode  MOS  encoding 
•  Two-Key  Rollover  •  MOS/DTL/TTL  Compat- 
ible •  Upper  Case  lockout  •  Data  and  Strobe 
inversion  option  •  Three  User  Definable 
Keys  •  Low  contact  bounce  •  Selectable  Par- 
ity •  Custom  Keycaps  •  George  Risk  Model 
753.  Requires  +5,  -12  volts.  $59.95  Kit. 


ASCII  TO  CORRESPONDENCE 
CODE  CONVERTER 

This  bidirectional  board  is  a  direct  replace- 
ment for  the  board  inside  the  Trendata  1000 
terminal.  The  on  board  connector  provides 
RS-232  serial  in  and  out.  Sold  only  as  an 
assembled  and  tested  unit  for  $229.95. 
Part  No.  TA1000C 


DISK  JACKET'" 

Made  from  heavy  duty 
.0095  matte  plastic 
with  reinforced 

grommets.  The  mini- 
diskette version  holds 
two  5-1/4  inch  disk- 
ettes and  will  fit  any 
standard  three  ring 
binder.  The  pockets  to 
the  left  of  the  disk- 
ette can  be  used  for 
listing  the  contents  of 
the  disk.  Please  order 
only  in  multitudes  of 
ten.  $9.95/10  Pack. 


INTERNATIONAL 

MICROPROCESSOR 

DICTIONARY 

English,  French,  Dan- 
ish, German,  Italian, 
Hungarian,  Norwe- 
gian, Polish,  Spanish, 
Swedish.  10  lan- 
guages, 28  pp. 
SYBEX.  Ref.  IMD. 
$4.95 


TTL COOKBOOK 

Bk  1063  —  by  Don 
Lancaster.  Explains 
what  TTL'  is,  how  it 
works,  and  how  to  use 
it.  Discusses  practi- 
cal applications,  such 
as  a  digital  counter 
and  display  system, 
events  counter,  elec- 
tronic stopwatch,  di- 
gital voltmeter  and  a 
digital  tachometer. 
$8.95 


MICRO- 
PROCESSOR LEXI 
CON  — ACRONYMS 
AND  DEFINITIONS 

Bk  1040  — compiled 
by  the  staff  of 
SYBEX,  is  a  conven- 
ient reference  in 
pocket-size  format. 
Sections  include  ac- 
ronyms and  defini- 
tions, part  numbers 
and  their  definitions, 
S-10Q  signals, 

RS232  signals,  IEEE 
499  signals,  micro- 
computers and  mi- 
croprocessors. 
JETDS  summary  (mil- 
itary) and  a  code  con- 
version table.  $2.95 


RS-232/20inA 
INTERFACE 

This  board  has  two 
passive,  opto-isola- 
ted  circuits.  One  con- 
verts RS-232  to 
20mA,  the  other  con- 
verts 20mA  to  RS- 
232.  All  connections 
go  to  a  10  pin  edge 
connector.  Requires 
+12  and  -12  volts. 
Board  only  $9.95, 
part  no.  7901,  with 
parts  $14.95  Part 
No.  7901A. 


COMPUCOLOR II 

Model  3,  8K  $13.95, 
Model  4,  16K  $15.95, 
Model  5,  32K  $18.95. 
Prices  include  color 
monitor,  computer, 
and  one  disk  drive. 


PET  COMPUTER 

With  32K  &  monitor  - 
$1195.  Dual  Disk 
Drive -$1195. 


||Eippia 


11 


16K  -  $1095,  32K  - 
$1195,  48K  -  $1293. 
Disk&cont.  $589 


6502  ^ 

APPLICATIONS 
BOOK 
Z80  APPLICATIONS 

BOOK' 
This  book  will  teach 
you  how  to  connect  a 
board  to  the  outside 
world  and  implement 
practical  applications 
for  the  6502,  (or 
ZBO).  Applications 
range  from  home  con- 
trol (a  complete  alarm 
system,  including 
heat  sensor),  to  in- 
dustrial applications. 
You  will  learn  tech- 
niques ranging  from 
simulated  traffic  con- 
trol to  analog-digital 
conversion.  All  exper- 
iments can  be  realized 
with  a  minimum  of  ex- 
ternal (low-cost) 
components.  They  are 
directly  applicable  to 
any  6502-based 
board  such  as  SYM, 
KIM,  AIM  65.  This 
book  also  studies  in 
detail  input-output 
techniques  and  com- 
ponents, and  is  the 
logical  continuation  of 
C202  (or  C280).  By 
Rodney  Zaks. 

SYBEX.  6502:  Ref. 
D302;  ZBO:  Ref 
D380.  Each  $12.95 


T.V.  INTERFACE 

•  Converts  video  to 
AM  modulated  RF, 
Channels  2  or  3.  So 
powerful  almost  no 
tuning  is  required.  On 
board  regulated  power 
supply  makes  this  ex- 
tremely stable.  Rated 
very  highly  in  Doctor 
Dobbs'  Journal.  Recom- 
mended by  Apple  • 
Power  required  is  12 
volts  AC  C.T.,  or  +5 
volts  DC  •  Board  only 
$7.60  part  No.  107, 
with  parts  $1 3.50  Part 
No.  107A 


QiaiEjiqiniqiqi 


PARALLEL  TRIAC 

OUTPUT  BOARD 

FOR  APPLE  II 


This  board  has  8  tnacs  capable  of 
switching  110  volt  6  amp  loads  (660  watts 
per  channel)  or  a  total  of  5280  watts.  Board 
only  $15.00  Part  No.  210,  with  parts 
$119.95  Part  No.  21 OA. 


Tq  Qrrjor  ■  Mention  part  no.  description,  and  price.  In  USA  shipping  paid  by  us  for  orders  accompanied  by  checl<  or  money  order. 
'  We  accept  C.O.D.  orders  in  the  U.  S.  only,  or  a  VISA  or  Master  Charge  no.,  expiration  date,  signature,  phone  no., 
^1  shipping  charges  will  be  added.  CA  residents  add  6.5%  for  tax.  Outside  USA  add  10%  for  air  mail  postage  and  han- 


dling. Payment  must  be  in  U.  S.  dollars.  Dealer  inquiries  invited.  24  hour  order  line  C408)  22B-40B4. 


Send  for  FREE  Catalog  . . .  abig  self-addressed  envelope  v\/ith41«  postage  gets  it  fastest! 


ELECTRONIC    SYSTEMS  ^^P^-  B,    p.  O.  box  21638,SanJose,  causa 95151 


258       BYTE  Augvsl  1979 


Circle  125  on  inquiry  card. 


TRS-BO" 
SERIAL  I/O 

•  Can  input  into  basic 

•  Can  use  LLIST  and 
LPHINT  to  output,  or 
output  continuously  • 
RS-232  compatible  • 
Can  be  used  with  or 
without  the  expansion 
bus  •  On  board  switch 
selectable  baud  rates 
of  110,150,300,600, 
1 200,  2400,  parity  or 
no  parity  odd  or  even, 
5  to  8  data  bits,  and  1 
or  2  stop  bits.  D.T.R 
line  •  Requires  +5, 
-12  VDC  •Board  only 
$19.95  Part  No.  8010, 
with  parts  $59.95  Part 
No  801 OA,  assembled 
$79.95  Part  No.  8010 
C.  No  connectors  pro- 
vided, see  below. 


E1A/RS-23S  con- 
noclor  Part  No. 
DB55P£aQ0.wch 
9'.  B  conductor 
cable  S10. 95  Part 
No  DB25Pg 


3'  nbbon  caUs 
iwithattschBdcon. 
nactorsiodtTRS- 
BO  and  our  senal 
board  $19.95  Part 
No.  3CAB40. 


RS-232/  TTL 
INTERFACE 

•  Converts  TTL  to  RS- 
232,  and  converts  RS- 
232  to  TTL  •  Two  sep- 
arate  circuits  •  Re- 
quires -12  and  +12 
volts  •  All  connections 
go  to  a  10  pin  gold 
plated  edge  connector 

•  Board  only  $4.50 
Part  No.  232,  with 
parts  $7.00  Part  No. 
232A  10  Pin  edge 
connector  $3.00  Part 
No.  10P 


MODEM 

•  Type  1 03  •  Full  or 
half  duplex  •■Works  up 
to  300  baud  •  Origi- 
nate or  Answer  •  No 
coils,  only  low  cost 
components  •  TTL  in- 
put and  output-serial 

•  Connect  8  fl  speak- 
er and  crystal  nnic. 
directly  to  board  • 
Uses  XR  FSK  demod- 
ulator •  Requires  +5 
volts  •  Board  only 
$7,60  Part  No.  109, 
with  parts  $27.50  Part 
No.  109A 


DISKETTES 


Vfertjatim 


Boxof  10,  5"$29.95, 
8"  $39.95. 

Plastic  box,  holds  10 
diskettes,  5"  -  $4.50, 
8" -$6.50. 


RS-e32/TTY 
INTERFACE 

This  board  has  two 
active  circuits,  one 
converts  RS-232  to 
20mA,  and  the  other 
converts  20mA  to 
RS-232.  Requires 
+12  and  -12  volts. 
Board  only  $4.50  Part 
No.  600,  with  parts 
S700  Part  No.  600A. 


A1*rA-(3    tfPiJ 


8-100  BUS 
ACTIVE  TERMINATOR 

Board  only  $14.95  Part  No,  900,  with  parts 
S2495  Part  No.  900A 


APPLE  II-::- 

SERIALI/O 
INTERFACE 


Baud  rate  is  continuously  adjustable  from  0 
to  30,000  •  Plugs  into  any  peripheral 
connector  •  Low  current  drain.  RS-232  input 
and  output  •  On  board  switch  selectable  5  to 
8  data  bits,  1  or  2  stop  bits,  and  parity  or  no 
parity  either  odd  or  even  •  Jumper  selectable 
address  •  SOFTWARE  •  Input  and  Output 
routine  from  monitor  or  BASIC  to  teletype  or 
other  serial  printer  •  Program  for  using  an 
Apple  II  for  a  video  or  an  intelligent  terminal. 
Also  can  output  in  correspondence  code  to 
interface  with  some  selectrics.  •  Also 
watches  DTR  •  Board  only  $1 5.00  Part  No. 
a,  with  parts  S42.00  Part  No.  aA,  assembled 
$62.00  Part  No.  2C 


8K  EPROM   PiicEON 

Saves  programs  on  PROM  permanently(until 
erased  via  UV  light)  up  to  8K  bytes.  Programs 
may  be  directly  run  from  the  program  saver 
such  as  fixed  routines  or  assemblers.  •  S- 
100  bus  compatible  •  Room  for  8K  bytes  of 
EPROM  non-volatile  memory  (2708's).  •  On- 
board PROM  programming  •  Address 
relocation  of  each  4K  of  memory  to  any  4K 
boundary  within  64K  •  Power  on  jump  and 
reset  jump  option  for  "turnkey"  systems  and 
computers  without  a  front  panel  •  Program 
saver  software  available  •  Solder  mask  both 
sides  •  Full  silkscreen  for  easy  assembly. 
Program  saver  software  in  1  2708  EPROM 
$25.  Bare  board  $35  including  custom  coil, 
board  with  parts  but  no  EPROMS  $1 39,  with 
4  EPROMS  $179,  with  8  EPROMS  $219. 


WAMECO  PRODUCTS 

WITH 

ELECTRONIC  SYSTEMS  PARTS 

FDC-1  FLOPPY  CONTROLLER  BOARD  will 
drive  shugart.  pertek,  remex  5"  &  8"  drives 
up  to  8  drives,  on  board  PROM  with  power 
boot  up,  will  operate  with  CPM  (not 
included).  PCBD    $42.95 

FPB-1  Front  Panel.  (Finally)  IMSAI  size  hex 
displays.  Byte  or  instruction  single  step. 
PCBD  S42.95 

MEM-1A  8Kx8  fully  buffered,  S-100,  uses 
210a  type  RAMS. 
PCBD $24.95,  $1  68  Kit 

QMB-12  MOTHER  BOARD,  13  slot,  termi- 
nated, S-1 00  board  only    $34.95 

$89.95  Kit 

CPU-1  8080A  Processor  board  S-1 00  with 

8  level  vector  interrupt  PCBD   . .  $25.95 

$89.95  Kit 

RTC-1  Realtime  clock  board.  Two  independ- 
ent interrupts.  Software  programmable. 
PCBD  $25.95,  $60.95  Kit 

EPM-1  17D2A  4K  EPROM 

card  PCBD  $25.95 

$49.95  with  parts  less  EPROMS 

EPM-2  a708/a716  16K/32K 

EPROM  card  PCBD    $24.95 

$49.95  with  parts  less  EPROMS 

OMB-g  MOTHER  BOARD.  Short  Version  of 

QMB-12.  9  Slots  PCBD    $30.95 

$67.95  Kit 

MEM-2  16Kx8  Fully  Buffered  2114  Board 
PCBD $25.95,  $369.95  Kit 


T.V. 
TYPEWRITER 

•  Stand  alone  TVT 

•  32  char/line.  16 
lines,  modifications  for 
64  char/line  included 

•  Parallel  ASCII  (TTL) 
input  •  Video  output 

•  1 K  on  board  memory 

•  Output  for  computer 
controlled  curser  • 
Auto  scroll  •  Non- 
destructive curser  • 
Curser  inputs:  up,  down, 
left,  right,  home,  EOL, 
EOS  •  Scroll  up,  down 

•  Requires  +5  volts 
at  1.5  amps,  and  -1  2 
volts  at  30  mA  •  All 
7400.  TTL  chips  • 
Char.  gen.  2513  • 
Upper  case  only  • 
Board  only  $39.00 
Part  No.  106,  with 
parts  $145.00  Part 
No.  106A 


UART& 
BAUD  RATE 
GENERATOR 

•  Converts  serial  to 
parallel  and  parallel  to 
serial  •  Low  cost  on 
board  baud  rate  gener- 
ator •  Baud  rates: 
110,  150  300,  600, 
1200,  and  2400  • 
Low  power  drain  +5 
volts  and  -12  volts 
required  •  TTL  com- 
patible •  All  characters 
contain  a  start  bit,  5 
to  8  data  bits,  1  or  2 
stop  bits,  and  either 
odd  or  even  parity.  •  All 
connections  go  to  a  44 
pin  gold  plated  edge 
connector  •  Board  only 
$12.00  Part  No.  101, 
with  parts  $35.00  Part 
No.  101  A,  44  pin  edge 
connector  $4.00  Part 
No.  44P 


TAPE 
INTERFACE 

•  Play  and  record  Kan- 
sas City  Standard  tapes 

•  Converts  a  low  cost 
tape  recorder  to  a 
digital  recorder  •  Works 
up  to  1200  baud  •Dig- 
ital in  and  out  are  TTL- 
serial  •  Output  of 
board  connects  to  mic. 
in  of  recorder  •  Ear- 
phone of  recorder  con- 
nects to  input  on  board 

•  No  coils  •  Requires 
+5  volts,  low  power 
drain  •  Board  only 
$7.60  Part  No.  Ill, 
with  parts  $27.50  Part 
No.  111A 


HEX  ENCODED 
KEYBOARD 

E.S. 
This  HEX  keyboard 
has  1 9  keys,  1 6  encod- 
ed with  3  user  defin- 
able. The  encoded  TTL 
outputs,  8-4-2-1  and 
STROBE  are  debounced 
and  available  in  true 
and  complement  form. 
Four  onboard  LEDs 
indicate  the  HEX  code 
generated  for  each 
key  depression.  The 
board  requires  a  single 
+5  volt  supply.  Board 
only  $15.00  Part  No. 
HEX-3,  with  parts 
$49.95  Part  No.  HEX- 
3A.  44  pin  edge  con- 
nector $4.00  Part  No. 
44P. 


DC  POWER  SUPPLY 


•  Board  supplies  a  regulated  +5 
volts  at  3  amps.,  +1  2,  -1 2,  and  -5 
volts  at  1  amp.  •  Power  required  is 
8  volts  AC  at  3  amps.,  and  a4  volts 
AC  C.T.  at  1.5  amps.  •  Board  only 
$12,50  Part  No.  6085,  with  parts 
excluding  transformers  $42.50 
Part  No.  B085A 


To  Ordfir  ■  '^^"'''°"  P^'^'- "°-  description,  and  price.  In  USA  shipping  paid  by  us  for  orders  accompanied  by  checic  or  money  order. 

l\>  VIUCI  a  yyg  accept  C.O.D.  orders  in  the  U,  S.  only,  or  a  VISA  or  Master  Charge  no.,  expiration  date,  signature,  phone  no., 
shipping  charges  will  be  added.  CA  residents  add  6.5%  for  tax.  Outside  USA  add  10%  for  air  mail  postage  and  han- 
dling. Payment  must  be  in  U.  S.  dollars.  Dealer  Inquiries  invited.  24  hour  order  line  C40B)  226-4064. 


Send  for  FREE  Catalog  ...  a  big  self-addressed  envelope  with  41*  postage  gets  it  fastest! 


ELECTRONIC    SYSXEMS  f'ept.  B,     p.  O.  box  21638,  San  Jose,  CA  USA  95151 


Circle  125  on  Inquiry  card. 


BYTE  August  1979         259 


The  EXPANDORAM  is  available 
In  versions  from  16K  up  to  64K,  so 
for  a  minimum  Investment  you 
can  have  a  memory  system  that 
will  grow  with  your  needs.  This  Is 
a  dynamic  memory  with  the  in- 
vlsable  on-board  refresh,  and  IT 
WORKS! 

•  interfaces  with  Altair,  IMSAI,  SOL-8, 
Cromenco,  SBC-100,  and  others. 

•  Bank  Selectable 

•  Phantom 

•  Power  8VDC,  ±  16VDC,  5  Watts 

•  Lowest  Cost  Per  Bit 

'  Uses  Popular  4116  RAMS 
'  PC  Board  is  doubled  solder  masked  and 
has  silk-screen  parts  layout. 


SD  EXPANDORAM 

74e  TitUmaU  S-fOO  7fU»HMtf 


'■f"1S^'"ET~'''CT''%' 


H-iiiiiyiiitliiiiiiT 


•  Extensive  documentation  clear- 
ly written 

•  Complete    Kit    includes    all 
Sockets  for  64K 

•  Memory    access   time:    375ns, 
Cycle  time:  500ns. 

•  No  wait  states  required. 

•  16K  boundries  and  Protection 
via  Dip  Switches 

•  Designed   to   work   with   Z-80, 
8080,  8085  CPU's. 

EXPAND0  64KIT(4116) 

16K $249 

32K $324 

48K $399 

64K $474 


Sugart  SA400  5V4" 

with  attractive  metal  case 

$325 

Sugart  801 
with  attractive  metai  case 

$495.00 

Siemens  FDD  200-88" 
double-sided 
\  double  density 


$650.00 


DISC  CONTROLLER 
SD  "VERSAFLOPPY"  Kit 

Only  MSS" 


The  Versatile  Floppy  DIak 
Controtler 


FEATURES  IBM  3740  Soft  Sectored  Compati- 
ble. S-100  BUS  Compatible  for  Z-SO  or  8080.  Con- 
trols up  to  4  Drives  (single  or  double  sided). 
Directly  controls  the  following  drives: 

1.  Shugart  SA400/450  Mini  Floppy 

2.  Shugart  SA800/850  Standard  Floppy. 

3.  PEHSCI  70  and  277. 

4.  MFE  700/750. 

5.  CDC  9404/9406, 

6.  GSI/Siemans  FDD120-8. 

34  Pin  Connector  lor  Mini  Floppy.  50  Pin  Con- 
nector for  Standard  Floppy,  operates  with 
modified  CP/M  operating  system  and  C-Basic 
Compiler.  The  new  "Versafloppy"  from  S.D. 
Computer  Products  provides  complete  control 
for  many  of  the  available  Floppy  Disk  Drives, 
Both  Mini  and  Full  Size.  FD1771B-1  Single  Den- 
sity Controller  Chip.  Listings  tor  Control  Soft- 
ware are  Included  In  price.  «  .  nnnn 

CPM  for  SD  Versafloppy  '100"" 


DM2700S  DISK  & 

CABINET  with 
POWER  SUPPLY 

DM2700S  includes  Slemans  or 

Shugart  Disk  Drive 

with  the  following  features: 


'^CONTINENTAL  SPf ClALTIES  CORPORATION 


•  Singie  or  Double  Density 

•  Hard  or  Soft  Sector       Cabinet  includes:  

•  Write  Protect  •  110V  to  125V  60  Hz  power  supply 

•  Hard  Sector  Detection  •  Data  Cable 

•  500  KB/S  Transfer  •  Fan 

•  800  KB  unformaled       •  Accepts  per  SCI,  Shugart,  Siemans 

•  Bit  density  6536  BP1  8"  Drives 

.  Sugart  800  Series  Compatabie  DM2700  Cabinet,  less  Drive 

DM2700S  Disl<  Drive  &  Cabinet  ^acnaa        "^tK-j^tttn       c/^'Mrnn 

REG.  $750  SALE  PRICED       ^SSOO"  32492°        '225°° 

SPECIAL:  SD  Versafloppy  Kit,  CPM.  and  DM2700S  *888  V 


LOOIC  PROBES 


Logic  Probes  and 
Digital  Puisers 


^% 


*^if  "X^      "^ 


CSC  logic  probes  are  the  ultimate  tool  (or  breadboard  design  and  testing. 
Ttiese  hand-held  units  provide  an  instant  overview  of  circuit  conditions. 
Simple  to  use:  just  clip  power  leads  to  circuit's  power  supply,  set  logic 
family  switch  to  rrUDTL  or  CMOS/HTL.  Touch  probe  to  lest  node.  Trace 
logic  levels  and  pulses  through  digital  circuits.  Even  stretch  and  latch  lor 
easy  pulse  detection.  Instant  recognition  of  high,  low  or  invalid  levels,  open 
circuits  and  nodes.  Simple,  dual-level  detector  LEDs  tell  II  quickly,  correct- 
ly. Ht  (Logic  "1"):  LO  (Logic  "0").  Also  Incorporates  blinking  pulse  detector. 
e.g.,  HI  and  LO  LEDs  blink  on  or  oft,  tracking  "1"  or  "0"  stales  al  square 
wave  Irequancles  up  lo  1.5  MHz.  Pulse  LED  blinks  on  for  Vj  second  during 
pulse  transition.  Choice  of  three  models  lo  meet  individual  requirements; 
budget,  project  and  speed  of  logic  circuits. 

MODEL  LP-1 

Hand-held  logic  probe  provides  Inslant  reading  of  logic  levels  for  TIL,  DTL. 
HTL  or  CMOS.  Input  lmp«danc«:  100,000  ohms.  Minimum  Deteclabie  Pulse: 
SO  ns.  Maximum  Input  Signal  (Frequency):  10  MHz.  Pulse  Detector  (LED): 
High  apeod  Irain  or  single  event.  Puis*  Marnory:  Pulse  of  level  transition 
detected  and  stored.  *^^^-^~ 

^SC  Model  Lp.l  Logic  Probe-Net  Each S^f^^    $42.70 


MODEL  LP-2 

Economy  version  of  Model  LP- 1.  Safer  than  a  voltmeter.  More  accurate  Ihan 
a  scope.  Input  Impedance:  300,000  ohms.  Minimum  Detectable  Pulaa:  300 
ns.  Menimuin  Input  Signal  (Frequency):  1.5  MHz.  Pulse  Detector  (LED):  High 
speed  train  or  single  event.  Pulie  Memory:  None.         ^^     ^ 

CSC  Model  LP-2  Logic  Probe— Net  Each 04:^    $23.70 

MODEL  LP-3 

High  speed  logic  probe.  Captures  pulses  as  short  as  10  ns.  Input  Im- 
pedance: 500,000  ohms.  Minimum  Delectable  Pulse:  10  ns.  Maximum  Input  ' 
Signal  (Frequency):  50  MHz,  Pulse  Detector  (LED):  High  speed  train  or 
single  event.  Pulse  Memory:  Pulse  or  level  transition  detected  and  stored. 
CSC  Model  LP-3  Logic  Probe-Net  Each ^bft^    SB6.45 


DIOrTAL  PULSER 

The  ultimate  In  speed  and  ease  of  operation.  Simply  conned  clip  leads  to 
positive  and  negative  power,  then  touch  DP-l's  probe  lo  a  circuit  node; 
automatic  polarity  sensor  delects  circuit's  high  or  low  condition.  Depress 
the  pushbutton  and  trigger  an  opposite  polarity  pulse  into  the  circuit.  Past 
troubleshooting  Includes  injecting  signals  at  key  points  In  TTL,  DTL,  CMOS 
or  other  popular  circuits.  Test  with  single  pulse  or  100  pulses  par  second 
via  built-in  dual  control  push-bulton;  button  selects  single  shot  or  con' 
tinuous  modes.  LED  Indicator  monitors  operating  modes  by  flashing  once 
for  single  pulse  or  continuously  for  a  pulse  train.  Completely  aulomalic, 
pencil-size  lab/field  pulse  generator  for  any  family  of  digital  circuits.  Out- 
put: Tri-stale.  Polarity:  Pulse-sensing  auto-polarity.  Syne  and  Source:  100 
mA.  Pulse  Train:  100  pps.  LED  Indicator:  Flashes  lor  single  pulse;  stays  lit 
for  pulse  trein. 
CSC  Model  DP-1  Digital  Pulsar— Net  Each (M;^    $71.20 


SD  COMPUTER  BOARDS 


"^lM.^^iri-n, 


"^in!'"f!?r 


|$319  KIT^" 
VDB-8024  Video  Display  Board 
With  On-Board  Z80  Microprocessor 


•  FulltiUChanu:tcn«b>':!4liiit:itdl>tiilBy 

•  Ctmrucurtt  dlnplaycil  bj-  High  Rcnolu- 
Uon  7x10  Matrix 

■  Kcytxianl  Power  and  Interface 

•  CampoMltcVldcoOutput 

•  Scpamu  TTl,  l£ve\  SyncbmtOiMirm 
nnd  Video  ( luiputs 

•  2K    BytCB    Independent    On    Bomil 
Mcinoiy 

•  On- Board  Z80  Mlcraprocctuur 

•  Glldi  Free  IMbpW 


•  96  Upper  and  Lower(^aHeChaivcii.-rH 

•  32  Speclat  Character  Set 

•  128    AddlUonal    user    PiDgrammable 
Choraetcro 

•  Full  Cursor  Control 

•  Forward  and  Rcveim:  Scinlllng 
CapabUlty 

■  Operatcti  as  an  Indcfiendcnt  Terminal 

•  Variable  Speed  Dtnplay  Rate 

■  Blinking,  Underilnlng,  Field  Reveme, 
FWId  Protect  and  D)niblnBUonii 


$239  KIT^ 

SBC-100  Single  Board  Computer 

with  Onboard  RAM,  PROM,  CTC 


a  Four  Channel  Cuunirr/Tlmer 

izao-crci 

•  Software    Proftnuumable    Huud    Hale 
Gcacmlor 

•  S- 100  Bini  QmipaUbIc 

•  NoFiDOt Panel  Required IbrOpcratlnn 

•  Optkmol  Vectored  Interrupts 


•  ZtJOCentral  PnK:n)alng  L'nK 

•  1024Bytcnof  Raiuloui'VcccMiMeinoo' 

•  BK  Bytes  orAvaikbk  PKOM 

•  Serial  InpuL'Oitpui  Port  u-lih  bulh 
SynchnKiouB  and  Aii>-nchTanoua 
Operation 

•  I^rallel  Input  and  Output  Porta 


$249 

Z80  Starter  Kit 

A  Complete  Microcomputer  on  a  Boardl 


PRIORITY     ONE      ELECTRONICS 

16723B  Roscoe  Blvd.  Sepulveda,  CA  91343 

Terms:  Visa,  MC,  BAG,  Check,  Money  Order,  C.O.D.  U.S.  Funds  Only.  CA  residents  add  6%  sales  tax 
Minimum  order  $10.00.  Prepaid  U.S.  orders  less  than  $75.00  include  5%  shipping  and  handling 
rninlmum  $2.50.  Excess  refunded.  Just  In  case  .  . .  please  include  your  phone  no. 
Prices  subject  to  change  without  notice. 
We  will  do  our  best  to  maintain  prices  thru  August  1979. 

Dhone  orders  welcome  (213)  894-8171.  (800)  423-5633     inquiries  invited, 


•  Z80  Ornirftl  ProccMtlnK  Lnit  »1ih  li 
InHtructions 

•  On  Ditard  Keyboard  and  Ulaplay 

•  KiuiMUtCit}' Standard  Oiseclti: 
Inierfucc 

•  PRtJM  Prognunmcr  Uuilt  on-boord 

•  E.xi>aiislonpmv1slonfort»oS-llX) 


•  Wire  Wrap  aivu  for  cimtiim  tlrculiry 

•  SlnfllcBVutlOperutluiitthcnuot 
{inmtiuntrUti^ 

•  IK  B\le»  or  RiUI  (Eicpandubic  U>  £ 


•  TwuUl-din^etliiruUK-bll  I/O  l\>n^{Vi*i- 
PIO) 

•  Switch  Sclcctubk  I'KOM  c.r  M<mlii.r 
Rctitun 

•  2K  n>-tc  ZBI ■<;  Miiiilior  Ui  HtJM 

•  Mcmiin'  Examine  luwl  Qiiuik<' 

•  Port  Examine  und  Change 

•  /JVirn'ReKlHltrE-tumlncundLliaiige 

•  rpiu6I*nifiruintimble  BrcokpolniK 

■  Single  Stci>  Uinnagh  H,VM  or  PROM 

■  Aiirii(iCuwie(tcLouiliuKll)ump 

•  Vcciiircd  I nicmiptM  provided  b)' 
Z«(MTCandZ«>-PIO 


«  IK  U>-tes  of  RAM  (Expandable  lo  SK    •  [deal  fur  E-xikt 
___.  .  ,  ,         ,  ,       Kyxe»)  EiiiluuUii|itlu:ZHOCPI' 

UcM  and  InStltUIIOnai    •4('hunnclllardvL'iireC<>uniermmer 
(ZHO-tTC) 


ORDER  TOLL  FREE  1-800-423-5633      ORDER  TOLL  FREE  1-800-423-5633 


Visit  our  new  reto 


Circle  312  on  inquiry  card. 


A  Portable,  Dual  Trace  Oscilloscope  with  Big  Performance  and  a  Low,  Low  Price 

NEW  MS-230  Dual  Trace  MInlscope  with  30  MHz  Bandwldthl 

555900 

PORTABLE  BATTERY  OPERATED  •  MADE  IN  THE  U.S.A.I 
With  Rechargeable  Batteries  &  Charger  Unit 

FEATURES 

•  Dual  Trace— 2-channel;  separate,  chopped  or  alternate  modes. 

•  30-megahertz  bandwidth.    •  External  and  Internal  trigger. 

•  Time  Base— 0.05  microseconds  to  0.2  Sec/dlv— 21  settings.  •  Battery  of  line  operation 

•  Line  synchronization  mode.    •  Power  consumption  less  than  SOW. 

•  Vertical  Gain— 0.01  to  50  voits/div— 12  settings.  Size:  2.9"  H  x  6.4"  W  x  8.5"  D. 

•  Weighs  only  3.5  lbs  with  batteries. 

•  TEST  MOST  DIGITAL  LOGIC  CIRCUITS  INCLUDING  MICROPROCESSORS 

From  the  originators  of  the  Digital  Voltmeter,  the  people  who  have  broken  sales  and  performance 
records  for  Osclloscopes,  Non-Linear  Systems,  comes  the  MS-230  miniscope. 

Non  Linear  Systems  tooi(  their  engineering  and  modular  construction  sltlils  and  made  a  dream  a 
reality,  a  Dual-Trace  30  MIHz  miniscope,  small  enough  to  fit  In  most  briefcases  with  room  to  spare 
at  an  affordable  price. 


Non-Linear  Systems,  Inc. 
ProgrssB  Since  1952 


VERTICAL 

Mode:  CHI,  CH2,  CH1  &  CH2 (Chopped)  &  CH2 (Alt.) 
(The  following  speclflcallons  apply  to  each 
channel.) 
Bandwidth:  DC  to  30  MHz,   ±   3  db  ®  3  division 
deflection.     Typical  4  division  deflec- 
tion Is  obtainable  up  to  20  MHz. 
Coupling:  AC,  DC  or  ground,  switch  selectable.  Low 

frequency  3  db  point  on  AC  is  3  Hz. 
Rise  Time:  Approximately  10  nSec  ®  3  division 

deflection. 
Vertical  Input:  10  mV/dIv  to  50VMiv  In  12  calibrated 
ranges.  Accuracy  Is  3%  of  full  scale 
with  vernier  In  lull  clockwise  posi- 
tion. Vernier  provides  continuously 
variable  deflection  factors  between 
fixed  ranges,  uncallbrated. 
Input  Impedance:  1  megohm  in  parallel  with  SO  pF. 
Maximum  Input  Voltage:  250V  (DC  and  Peak  AC). 

HORIZONTAL 

Mods:  internal  Time  Base  or  External  Horizontal, 
switch  selectable.  In  the  XY  mode,  vertical 
Input  is  through  CHI  and  horizontal  Input 
through  CH2. 
Time    Base:   O.Su    Sec/dlv   to   0.2   Sec/dlv   In    21 
calibrated  ranges.  Accuracy  Is  3%  of 
full    scale    with    vernier    In    full 
clockwise  position.  Vernier  provides 
continuously  variable  settings  bet- 
ween fixed  ranges,  uncallbrated. 
Amplifier 
Bandwidth:  DC  to  1  MHz  (±3  db) 
Coupling:  AC,  DC  or  ground,  switch  selectable. 

Low  frequency  point  on  AC  Is  3  Hz. 
Deflection  Factor:  10  mV/dIv  to  50V/dlv  In  12  cali- 
brated ranges.  The  ranges  can 
be  calibrated  with  the  CH2 
gain  control. 
Input  Impedance:  1  megohm  in  parallel  with  50  pF. 
Maximum  Input  Voltage:  2S0V  (DC  and  Peak  AC). 

TRIGGER 

Modes: 

Automatic:  trigger  Is  disabled,  time  base 
free  runs. 

internal:  In  the  dual  trace  modes,  the  Internal 
trigger  source  is  CHI.  External  and  Line 
(line  not  functional  when  MS-230 
operates  on  batteries.)  Input  impedance 
is  1  megohm  on  External  Trigger. 

External:  Controlt  (unction at torintefnaltnooennoO  Megohm 

input  impodenco) 
Line:  Tnggor  is  denvod  Uom  line  frequencv  wttan  using  the 

batrerv  charger. 

Slope:  -f  or  ■,  switch  selectable. 

Coupling:  AC 

Sensitivity:  Less  than  1  div  for  Internal  trigger  and 

less  than  1  volt  for  external  trigger. 
Level:  Trigger  level  control  permits  continuous  ad- 
justment of  trigger  point  In  all  modes  except  Auto. 

CALIBRATORl  a  square-wave  signal  of  1 
volt  p-p  Is  provided.  Voltage 
accuracy  is  ±5%,  frequen- 
cy Is  approximately  1  KHz. 

DISPLAY 

Qratlcule:  4x5  dIv,  each  division  Is  0.25  Inch, 
Viewing  area  1.1"  H  x  1.35"  W. 


CRT: 


Bluish-white  phosphor,  medium  persistence. 
CRT  uses  low  power  filament  for  low  battery 
drain. 

POWER  SOURCES 

Internal:  Three  sealed,  rechargeable  lead-acid  cells. 
Operating  time  using  fully  charged  cells  Is 
approximately  45  minutes.  Charging  cir- 
cuitry is  integral  and  functions  when  the 
MS-230  Is  connected  to  power  line  through 
plug-In  transformer  (supplied  with  each  In- 
strument). Battery  charge  time  with  Instru- 
ment non-operating  Is  16  hours. 
External:  Operates  continuously  from   115  vac 
source  SO  ■  400  Hz  when  connected  via 
plug-in  transformer.  (230  vac  Is  available) 
Power  consumption  from  AC  line  Is  less 
than  50  watts. 

ENVIRONMENT 

Operating  Temperature:  0°  to  40°C 

Shock  and  Vibration:  Will  withstand  normal  shock 
and  vibration  encountered  in 
commercial  shipping  and 
handling. 

PHYSICAL  MEASUREMENTS 

Size:  2.9"  H  x  6.4"  W  x  8.5"  D.  (73.7  mm  x  162.6mm 

X215.9  mm) 
Weight:  3.5  lbs.  (1.59  kg)  with  batteries. 

FURNISHED  ACCESSORIES: 

Till  stand,  banery  charger.  2  input  cables,  and  3 
miniature  iMnarta  plugs 

WARRANTY:  one  year  parts  and  labor. 
Made  In  the  USAI 
MS-230  with  Rechargeable  Batteries  and  Charger 

PROBES 

Deluxe  10  to  1  probe  with  10  megohm  input.  100  MHz 
probe  with  4  interchangeable  tips:  Spring-loaded 
retractable  cover  tip,  insulating  tip,  BNC  tip,  IC  tip, 
also  Included  cap  adjustment  tool  and  zippered  vinyl 
case. 

41-141 $27.00 

DELUXE  COMBINATION  PROBE 

Same  as  above  except  the  probe  has  a  switch  to 
select;  10  to  1,  1  to  1  or  a  ground  reference  position. 
41-37R  Red  prolM  body 
41-370  Qrey  probe  body $38.50 

LEATHER  CARRYING  CASE 

The  leather  case  has  2  separate  comoartments  One  to  hold  the  scope,  the 
other  to  hold  tfv  charger,  probe,  shoulder  strep,  etc  The  case  cen  be  worn 
on  the  belt,  or  over  the  neck 

The  snaps  used  an  the  cese  ere  "oneway",  thus  accidental  striking  of 
the  cose  egeinst  an  object  will  not  undo  the  snaps  or  let  if  be  pulled  off  your 
belt 

41-180 $45.00 


I 


75.00  OFF 


j  on  any  accessories  purchased  ! 
I  with  MS-230  Miniscope.  Just  send  or  j 
I  inention  this  COUPON  and  Byte  | 
[  Magazine.  I 


PRIORITY     ONE      ELECTRONICS® 

i6723B  Roscoe  Blvd.  Sepulveda,  CA  91343 

Terms:  Visa,  MC,  BAC,  Check,  Money  Order,  C.O.D.  U.S.  Funds  Only.  CA  residents  add  6%  sales  tax 
Minimum  order  $10.00.  Prepaid  U.S.  orders  less  than  $75.00  include  5%  shipping  and  handling 
minimum  $2.50.  Excess  refunded.  Just  In  case  . . .  please  include  your  phone  no. 
Prices  subject  to  change  without  notice. 
We  will  do  our  best  to  maintain  prices  thru  August  1979.  OEM  and  Institutional 

phone  orders  welcome  (213)  894-8171,  (800)  423-5633     inquiries  invited. 


ORDER  TOLL  FREE  1-800-423-5633      ORDER  TOLL  FREE  1-800-423-5633 


Circle  312  on  inquiry  card. 


HICKOK  LX303 
$7495* 


RS232  &  "D"  TYPE  CONNECTORS 

P  =  Plug-Male   S  =  SockelFemale  C  =  CoverHood 


HICKOK  LX303  $74.95 


3  LEVEL  GOLD  WIRE  WRAP  SOCKETS 


PART  NO. 

DE-9P 

DE'9S 

0E9C 

DA1SP 

DA1SS 

DA1SC 

0B25P 

DB-25S 

DBS1212.1 

DB1226.1A 

DBHOt 

DC37P 

OC37S 

DC37C 

DD50P 

DD50S 

DD50C 

02041(8 


.5%,  3%  digit  19 

Range  DVM.  Vi"  LCD  displays 

runs  200  hrs  on  1  battery.  10  Meg 

Ohm  Input.  1  yr.  guarantee,  made  In 

U.S.A.,  test  leads  included. 

Available  Accassorlas 

RC-3  1 15V  AC  Adapter $7.50 

CC-3  Deluxe  Padded  Vinyl 

Carrying  Case $7.50 

VP-1D  X10  DCV  Probe  Adapter/ 

Protector  10Kv $14.95 

VP-40  40Kv  DC  Probe $35.00 

CS-1 10  Amp  Current  Shunt $14.95 

*FREE 

Just  for  Asking. 
FREE  BATTERY  with  your  meter. 


It  ncapuciti  wiiMOO  I 
row«lHi   ISScanlMliinlh  2KI row tpKing. 
VKlapwInumbaf  AU1-2.  otmounit  lOractp- 
It  plus  intwconntclioni  la  inuMr  mgtntr  Doif  d 

*  l>iClu(Hi(lctii4pi(uitt)naui)1r;KiionTUrDpliMiil 
Kim.  pu  i-up.  or  nuiine  KrtninjiKint 

•  LVeaDuln    +SVir>aGND|10AUPS).  ±12Vm  I6VI7 
lyPS)  Cuti*ninI>ngsii«p«rMIL'ST0-;7Sw<tn  10^ 


Price 
$29.50 


DESCRIPTION 
S  Pin  Male 
9  Pin  Female 
9  Pin  Covet 
15  Pin  Male 
15  Pin  Female 
15  Pin  Cover 
25  Pin  Mill 
25  Pin  Famili 

1  pc.  Gray  Hood 

2  pc.  Black  Hood 
2  pc.  Grey  K 
37  Pin  Mala 
37  Pin  Female 
37  Pin  Cover 
50  Pin  Male 
50  Pin  Female 
50  Pin  Cover 


ffliWiWim 


fei 


PRICE 

1-4       59  10-24 

1.50     1.30  1  10 

,95     1.75  1.45 

50     1.30  1  10 

2  00     1.80  155 

2.90     2.70  2  45 

180     160  1.30 

2,50     2.20  2.05 

3.50     3.10  2.85 

1.35  1.20 

1.50  1.35 

1.40  1.25 

3  75  3  50 

5.25  4.90 


1.65 
1.80 
1.70 
3.95 

5.50 
2.00 
5.00 
6.50 
2.50 
1  00 


1.60 


4.75  4,60 
6  00  5-75 
2.30    2.20 


Hardware  Sel  I2  pair) 

Connaclof  lor  CENTRONICS  700  SERIES: 
Amphenol  57-30360  lor  bach  of  Cenlromcs  700  Series  prinlers 
1  4-S90Q   5-up-$7  50 


S-100  BUS  EDGE  CONNECTORS 


SlOO-WWa    50/100    Com,    .12s    ctrs.    3 
LEVEL  WIRE  WRAP  .025"  BO.  posis  on 
.350  spaced  rows.  GOLD  PLATED. 
1-4  S-ft  10-34 

W.0O  U.76  S3.&0 

S100ALT   so/too    Cont.     125   ctiG-    DIP 
SOLDER  TAIL  on    140  spaced  rows  (or 
ALTAIR  motherboards.  GOLD  plated. 
1-4  S-B  10-34 

M.BD  I4.2S  S4,00 


SIOO-STO  50/100  Com  125  cirs.  _ 
SOLDER  TAIL  on  .250  spaced  rows  (or 
VECTOR.  IMSAI.  CROMENCO  molhei 
boards  GOLDplaled. 

1-4  5-0  10-24 

I3.H)  I3.2E  U,00 

S100SE  50(100  Com.    125  ctrs   PIEHCED 
SOLDER  EYELET  lails.  GOLD 
1-4  S-0  10  34 

S5.00  (4,S0  S4,D0 


Other  Poputar  Edga  Connectors 


02244-5SE32f44Com.    156  cirs. PIERCED 
SOLDER  EYELET  (alls,  GOLD  plated. 
1-4  6-9  10-34 

U.00  S3.M  S3.20 


».9S  S3.70 

IMSAI  Style  Card  Guides  5/SI.OO 


See  our  July  Ad  for  many  other  connectors. 


Sockets  purchased  in  multiples  of  50  per  type  may  be  combined  for  best  price. 


10 

10-24 

25-99 

100-249 

250-999 

Spin 

.40 

.36 

.34 

.31 

.27 

14  pin 

.39 

.38 

.36 

.32 

.31 

16  pin 

.50 

.42 

.40 

.36 

.34 

18  pin 

.70 

.60 

.55 

.50 

.45 

20  pin 

.90 

.80 

.75 

.65 

.62 

22  pin 

.95 

.85 

.80 

.70 

.65 

24  pin 

.95 

.85 

.80 

.70 

.65 

2a  pin 

1.25 

1.15 

1.00 

.95 

.90 

40  pin 

1.65 

1.45 

1.35 

1.20 

1.10 

All  sockets  are  GOLD  3  level  closed  entry.  2  level  Tall,   Low 

Profile.  Tin   Soekels   and   Dip   Plugs  available,   CALL  FOR  QUOTATION. 


THE  MICROBYTE  M32KSSl 
32K  STATIC  MEMORY  BOARDI 


Fully  S100  Bus  Compatible,  IMSAI,  SOL,  ALTAIR,  ALPHA  MICRO 

Uses  Nmional's  Low  Power  5257  4K  x  1  Static  Rams 

2  MHz  or  4  MHz  operation 

Gold  contacts  for  tilgher  reliability 

On  board  single  5  amp  regulator 

Thermally  designed  heal  sink  (board  operating  temperature  0*  -70*C) 

Commercially  designed  power  bus.  7  ground  bus  bars.  0.1  uf  decoupling  capacitors.! 

Fully  tri-stale  buffered  I 

Inputs  fully  low  power  Shottky  SchmJtt  Trigger  buffered  on  all  address  and  data  lines.  I 

Phantom  is  jumper  selectable  to  pin  67 

Each  4K  bank  addressable  to  any  4K  slot  with  in  a  64K  boundry. 

4K  hardware  or  software  selectable 

One  on  board  6-bit  output  port  enables  or  disables  the  32K  In  4K  blocks 

Selectable  port  address 

4K  banks  can  be  selected  or  disabled  on  power  on  clear  or  reset 

Will  operate  with  or  without  front  panel 

Compatible  with  ALPHA  MICRO,  with  extended  memory  management  for  selection! 

beyond  64K 

No  DMA  restriction 

Low  power  consumption  2.3  —  2.5  amps 

Fully  warranted  for  120  days  from  date  of  shipment. 


32K2MHz$619        32K4MHZ  $649 


seoov 

Universal  Microcompuler/processof 
pliigtloafO,  use  wilh  S-IQO  bus  Com- 
plele  with  heat  sink  &  hardware  5  3"  x 
10"xt/16" 

1-4  5-9  10-24 

$19.95  J17.95  S15.96 

8801-1 

Same  as  8800V  except  plain,  less  power 
buses  &heat  sink 

1-4  5-9  10-24 

$15.22         $13-79         $12.18 


3682     9.6"  X  4.5" 

$10.97 

36B2-2    6.5"  X  4.5" 

$9.81 

Hi-Oensily  Dual-ln-Line 
Plugboard  lor  Wire  Wrap 
with  Power  &  Grd.  Bus 
Epoxy  Glass  1/16"  44 
pin  coo.  spaced  .156 


X4.5" 

$10.90 

3677-2  6.5"  X  4.5" 

$9.74 

Gen.  Purpose  D.I. P. 
Boards  wilh  Bus  Pattern 
lor  Solder  or  Wire  Wrap. 
Epoxy  Glass  1/16"  44 
pin  cm.  spaced  .156 


3662    6.5"x4.5" 

$7.65 

3862-2    9.6'x4.5" 

$11.45 

P  pattern  plugboards  lor 
IC's  Epoxy  Glass  1/16" 
44pincon.  spaced  .156 


3690-12 
CARD  EXTENDER 

Card  Extender  has  100  con- 
tacts 50  per  side  on  .125 
centers-Attached  connec- 
tor-Is compatible  with 
S-100  Bus  Systenns.  $25-83 
3690  6.5"  22/44  pin  .156 
cirs.  Extenders  ....  113.17^ 


w 


^iieiPeiWl  BOARD 

.042  dia  holes  on 
0.1  spacing  for  IC's 


Phenolic 

PART  NO. 
64P44XXXP 
169P44XXXP 


SIZE 
4.5x6.5" 
4.5x17" 


PRICE 

1-9     10-19 

$1.56  $1.40 

$3.69  $3.32 


ilS-80/APPl-E 

iiMORY  EX<»ANSION  KITS 
4116'sRAMS 

(16l€|l|lbns) 

B  for  $f 5.00 

;|||i|,dd  $3.00  for  pfogrammltig  Jumpers 


10  SOCKET  SALE 

14  pin  Low  Profile 
1GSf$JL10100/$14.00 
16  pin  Low  Profile 
10/$2.20  100/$16.00 
24  pin  Low  Profile 
3/$1.00  40/$10.00 
40  pin  Solder  Tail 
3/$1.00  40/$10.0p 
24  pin  Dip  Plug  with 
cover 


14  &  16  PIN 
GOLD  3  LEVEL 
WIRE  WRAP 
SOCKESI 

14-G3  100  for 
$33.00 

16  -  G3  100  for 
$33.00 
50  of  each  for  $35.00  J 


MEMORY  MEMORY 

2102LtPC  Low  Power  450ns  it*  loss  of  25    $1.1(1 
2102AL-2  Low  Power  250ns  in  lots  of  25    $1.25 

21 1 4-4L 1  Kx4  450ns  Low  Power         :  8/$45^dS; 

21 14-3LlKx4  300  ns  Low  Power  8/$50.00 

ii57-3L4Kx130Qns:Low  Power  S/SSilll; 

2708  8K  450ns  EPROM  $9.00 

T 


IM-IOA  LltlUt 
SPECIAL 


.00 


PANAVISE  TILTS,  TURNS,  AND 
ROTATES  TO  ANY  POSITION. 
IT  HOLDS  YOUR  WORK 
,  EXACTLY  WHERE  YOU  WANT  IT 


$56.95  With  tube 

Perfectly  balanced  fluoreecent  tlonting 
with  precision  magnifier  lens.  Tougt^ 
thermoplastic  shads.  Easy  tens  re 
moval.  New  wire  clip  design  perrr^ils 
easy  Installation  and  removal  of 
lluorescent  tube.  Comes  with  plastic 
shield  to  protect  tutw  from  aolllng  and 
rjamage. 

r^olora:  Gray.  Blacli,  vni  Oocolate  Brown. 
Comas  with  ona  22  wall  T-S  Clrcllna  IIUOTaB- 
cant  tutio.  3  dtoplaf  lena. ^ 


^ 


|fe^ 


WRAB  POST 

for  .042  dIa.  holes 
J  (all  boards  on  this  page) 
IT4«C  pkg.  100  ..  S  2.34 
lT4«Mpks. 

1000 $14.35  •; 

I A-13  hand  Installing  . 


PRIORITY, 

16723B  Roscoe  Blvd. 


lELECTRONICS 


ORDER  TOLL  FREE 

1  80042356: 

);  except  CA..  AK.,  HI.,  Call 
ai3)  894^171 


Sepulveda,  CA  91343     ,, 

Terms:  Visa,  MC,  BAG,  Check,  Money  Order,  C.O.D.  U.S.  Funds  Only.  CA  residents  add  6%  sales  tax.  N| 
Minimum  order  $10.po.  Prepaid  U.S.  orders  less  than  $75.00  include  5%  shipping  and  handling 
minimum  $2.50.  Excess  relunded.  Just  In  case  . . .  please  include  your  phone  no. 
Prices  subject  to  change  without  notice. 
We  will  do  our  best  to  maintain  prices  thru  August  1979.  OEM  and  Institutional 

Dhone  orders  welcome  (213)  894-8171.  (800)  423-5633      Inoulrles  invited 


TEST 

EQUIPMENT 

CALL  FOR 

SPECIAL  PRICES 


ORDER  TOLL  FREE  1-800-423-5633      ORDER  TOLL  FREE  1-800-423-5633 


\A  t»'  Isa.lSSIflhJ)  POLICY 

Ruaden  who  have  eguipmenj.  software  or  other  items 
lo  buy.  Sffll  or  swap  should  send  m  a  clearly  typed  notice 
to  that  elfeci.  To  be  considered  for  publication,  an  adver- 
tisement must  be  clearly  noncommercial,  typed  double 
spaced  on  plain  white  paper,  contain  75  words  or  less,  and 
include  complete  name  and  address  mformaiion. 

These  notices  are  free  of  charge  and  will  be  printed  one 
time  only  on  a  space  available  basis.  Notices  can  be  ac- 
cepted horn  individuals  or  bona  fide  computer  users  clubs 
only.  We  can  engage  in  no  correspondence  on  these  and 
your  confirmation  of  placement  is  appearance  in  an  issue  of 

avre. 

Please  note  that  it  may  taku  throe  or  four  months  for  an 
ad  to  appear  m  the  magazine.  • 


llnclsssiRei)Ads 


FOR  SALE:  SwTPC  MP-A2  processor  board  (latest), 
with  SWTBUG  monitor,  $105.  Four  4  K  program- 
mable memory  boards  with  premium  350  ns  low 
power  chips,  S65  each.  AC-30  cassette  interface, 
S50.  All  assembled,  burned  in  and  running.  Prices 
are  1/3  less  than  kit.  Robert  Levine,  32  King  St,  New 
York  NY  10014,  (212)  691-2897  evenings. 


FOR  SALE:  Digital  Group  8  K  static  programmable 
memory  board.  In  original  package,  unassembled, 
complete  with  all  new  chips,  etc.  Best  offer  over 
$80  takes.  Will  guarantee.  Bob  Waber,  6564  E 
Michigan  Av,  Apt  52,  Saline  Ml  48176,  (3131 
429-7174. 


FOR  SALE:  AMS  memory  system,  32  K  by  1  6  bits 
plus  parity.  Includes  rack  mount  cabinet,  power  sup- 
ply, two  fans,  battery  backup,  25  slot  dual  back 
plane,  no  documentation.  Originally  used  with  Ad- 
vanced Memory  Systems  2 1 00  processor.  Has  66  K 
bytes  of  Intersil/AMS  6002  dynamic  memory  ( 1 024 
by  11.  $500  plus  shipping.  Dan  S  Parker,  1007  3rd 
St,  Davis  CA  95616,  (9161  758-2341. 


FOR  SALE:  IMSAI  8080  mainframe  with  1 1  edge 
connectors.  Dual  serial  input/output  ports.  8  K  static 
programmable  memory  with  hardware  memory  pro- 
tect. 8080  processor  board.  Documentation  and 
software.  ASR33  Teletype  with  paper  tape  reader 
and  punch.  $  1 600  or  best  offer.  Rich  Levinson,  1  24 
Nashoba  Rd,  Concord  MA  01 742,  (617) 
369-8471. 


FOR  SALE:  Digital  Group  Z-80  system,  includes 
dress  cabinet,  10  K  static  memory,  TVC-64,  1/0-F, 
12  A  power  supply,  complete  documentation  and 
software  including  Assembler,  MaxiBASIC  and 
diagnostic/demonstration  tape.  Add  a  keyboard  and 
monitor  and  you're  ready  to  run.  $850  or  will  con- 
sider reasonable  offer.  W  Colsher,  4328  Nutmeg  Ln 
Apt  1  11,  Lisle  IL  60532,  (31  2)  964-1 1  68  anytime. 


FOR  SALE:  An  IBM  type  1004  used  Selectric  ter- 
minal. It  can  be  converted  into  a  microcomputer 
Selectric  printer  with  high  quality  printout.  All 
documents  and  the  reprints  of  the  articles  from 
various  journals  will  be  included  for  free.  The  first 
cashier  check  for  $245  will  get  all.  Please  send 
check  along  with  your  telephone  number  to  H  T 
Chen,  Physics  Oept  UGA,  Athens  GA  30602. 


FOR  SALE:  6502  microcomputer  system  built  on 
OSt  number  400  series  boards.  Includes  1  6  K  static 
programmable  memory  (four  number  420c  memory 
boards!,  TIM  monitor  (1  K  read  only  memoryl.  20 
mA  or  RS-232  serial  input/output,  8  slot  mother 
board.  MOS  Technology  manuals,  wire  wrap  kludge 
board,  cabinet,  oversized  power  supply  and  soft- 
ware on  paper  tape.  Software  includes  BASIC, 
Editor/Assembler  and  games.  Asking  $350  for  all 
this,  you  ship.  Kenneth  A  Scharf,  34  Royal  Crest  Dr, 
Marlboro  MA  01752,  (6171  481-5534. 


FOR  SALE:  PET  Printer  adapter  with  built-in  power 
supply  and  connectors,  $  90  complete.  GE  computer 
grade  caps.  2900  mF,  350  V,  $6.50,  850  mF,  450 
V,  $3.50.  All  new  but  surplus.  J  Gatliff,  POB  627, 
Eau  Gallie  FL  32935. 


FOR  SALE:  MMD-1  with  256  bytes  programmable 
memory,  all  documentation  plus  BUGBOOKS  three 
and  five.  Excellent  tutorial  system.  $250  plus  UPS. 
Frank  DeBolt,  1 14  Eastpines  Rd,  Savannah  GA 
31410,  (912)  897-1384. 


MUST  SELL:  New,  unused  equipment  for  8080  or 
Z-80  based  systems  with  S-100  bus.  Purchased 
before  deciding  to  buy  a  PET.  North  Star  Micro-Disk 
System:  controller,  drive  in  cabinet  with  power  sup- 
ply, DOS  and  BASIC  on  diskette,  documentation, 
cost  $800.  North  Star  Hardware  Floating  Point 
Board:  greatly  speeds  up  math  calculations  in  BASIC 
cost  $400.  Will  sacrifice.  Karta  S  Khalsa.  32  The 
Hollow.  Amherst  MA  01002,  (413)  256-0391. 


FOR  SALE:  Texas  Instruments  30  cps  Silent  700 
printer/keyboard  terminal  in  good  condition  $380. 
Teletype  BRPE  1  10  cps  PT  punch  $160.  Caelus  2.5 
M  bytes  top  loading  disk  drive  $700.  Also  NOVA  ex- 
tender board.  NOVA  wire  wrap  board,  mounting 
slides,  AMP  and  TRW  connectors,  etc.  Nemeth,  560 
Upr  Mountain  Av,  Montclair  NJ  07043. 


FOR  SALE:  Heathkit  H9  video  terminal  with  full 
documentation,  RS-232  input/output  scrolling,  110 
to  9600  bps.  $400  postpaid.  Excellent  condition. 
Charles  E  Zalenski,  9  River  Ter,  Johnson  City  NY 
13790.  (607)  797-5777  days. 


FOR  SALE:  September  1975  thru  December  1978 
BYTE.  Good  condition  except  some  response  cards 
used.  No  missing  covers  or  pages.  Sell  one  or  all  for 
best  total  price  [over  S99)  by  end  of  month  this  ad 
printed.  High  bidders  notified,  send  SASE  if  response 
desired  otherwise.  Jim  Matthews,  2028  Merrily  Dr, 
Montgomery  AL  361  11. 


FOR  SALE:  64  K  plus  memory  —  Interfaced  for 
S 1 00  buss.  General  Electric  1 6  K  by  40  core 
memory  complete  with  all  cables,  power  supplies 
and  total  documentation.  Only  $350  plus  shipping 
from  Kansas  City  MO.  Jon  Smirl,  192  7  Orrington  Av 
Apt  8209,  Evanston  IL  60201,  (312)  492-0794. 
After  June  15th  the  address  will  be:  5817  Hutson 
Rd.  Kansas  City  MO  64151.  (816)  741-5688. 


FOR  SALE:  Diablo  Hytype  II  11345WP1  word  pro- 
cessing printer  (with  metal  wheel),  with  cover  and 
friction  feed  platen.  Never  used.  Interfaceable  to 
SOL,  6800  or  8080s.  $1599  without  power  sup- 
ply. Roger  Gersonde,  301  1  N  Sherman  Blvd, 
Milwaukee  Wl  53210,  (414)  332-9202  day,  (414) 
445-7880  nights. 


FOR  SALE;  Two  16  K  250  ns  TDL  static  program- 
mable memory  boards,  one  16  K  250  ns  Seattle 
static  programmable  memory  board,  TDL  Z-80  pro- 
cessor. SMB  board  and  software  (cassette  and  paper 
tape),  separately  or  together.  All  working  perfectly; 
just  changing  to  different  system  configuration. 
Barry  Gordon,  31  E  31st  St,  Baltimore  MD  21218. 


WANTED:  Radio  Shack  TRS-80.  Any  quantity,  any 
condition.  Immediate  cash  available.  Some  used 
units  available.  Write  with  description,  condition  and 
phone  number  for  immediate  quote.  DEC  PDP-8/E 
and  M  modules,  RK05,  ASR33,  RK8E.  etc.  buy,  sell, 
trade,  repair,  custom  interface.  Jim  Simpson,  POB 
632.  W  Caldwell  NJ  07006,  evenings  (201) 
226-9185  or  342-3110. 


WANTED:  Information  on  the  TC-71  sold  by  NCE 
from  anybody  who  has  one  or  has  worked  on  one. 
Also,  have  one  Radio  Shack  keyboard  for  sale, 
reasonable.  Burl  E  Anderson,  71  Edwards  Av. 
Galesburg  IL  61  401 ,  (309)  342-5660. 


FOR  SALE:  Attair  S-1  00  bus  single  drive,  single  den- 
sity 8  inch  PERTEC  floppy  disk  system  with  Altair 
Extended  BASIC  Version  4.1,  read  only  memory 
card  with  Bootstrap  read  only  memory,  floppy  disk 
controller  boards,  cables  and  complete  documenta- 
tion. Excellent  working  condition.  Reliable.  Selling  to 
reconfigure  system  for  hard  disk  drive.  $2800  new. 
Make  offer.  Mike  Harris,  3750  S  Maple  Grove  Rd, 
Boise  ID  83705.  (208)  362-5154. 


FOR  SALE:  Two  4  K  by  16  Heath  memory  boards, 
$125  each.  One  H10  paper  tape  punch  with  five 
rolls  and  three  boxes  of  fanfold  tape.  $125.  Two 
parallel  interface  boards,  one  assembled  $130.  one 
unassembled  at  $85.  Digital  cassette  recorder, 
$175.  James  E  Tarvid.  2735  N  Frederick.  Mil- 
waukee Wl  5321  1.  (414)  964-8633. 


FOR  SALE:  16  bit  minicomputer.  Interdata  5/16 
complete  on  one  10  by  10  inches  board  with  24  K 
bytes  programmable  memory,  microprogrammable 
with  monitor  in  read  only  memory,  Micio-I/O  (input- 
/output)  buss  interfaces  with  microcomputer  style 
peripherals,  ASCII  terminal  port  and  Interdata 
multiplexor  buss.  Large  Interdata  software  library  in- 
cluding BOSS.  BASIC.  FORTRAN.  FFT's.  processor 
and  memory  tests,  etc.  Brand  new  with  full 
documentation,  asking  $2750.  Also,  Interdata 
universal  logic  interface  for  I/O,  status  and  control 
ports  with  wire  wrap  area,  $300.  David  Rosenboom, 
POB  543  Sta  Z,  Toronto,  Ontario  CANADA  M5N 
2Z6,  (416!  593-4179. 


FOR  SALE:  Beehive  SuperBee  II  video  display  ter- 
minal. 8008  microprocessor  controlled.  Scroll 
mode,  page  transmit  or  line  transmit.  24  line  by  80 
character  screen,  but  can  hold  200  plus  lines  in  own 
memory  to  scroll/page  backward  and  forward. 
Editing  features:  line  insert/delete,  character  insert/- 
delete.  Function  keys.  Tabs  settable  anywhere,  may 
be  set  by  computer.  Formatted  screen  (fill  in  blanks) 
can  be  specified.  Truly  the  Rolls  Royce  of  terminals. 
S900  or  best  offer.  Michael  J  Eager,  481  Century 
Dr,  Campbell  CA  95008.  You  must  send  SASE. 


FOR  SALE:  Heath  H8  with  48  K,  two  each  SIO/- 
cassette,  interface;  $  1  975.  Heath  WH1  7  dual  flop- 
py disk  system;  $925.  Heath  H9  video  terminal; 
S550.  Heath  cassette  plus  recorder;$45.  All  factory 
tested  and  running,  some  under  factory  warranty. 
Reason  selling:  1  have  two  computer  systems.  Buy 
package  for  $3300  or  separately.  All  offers  con- 
sidered. Ray  King,  915  El  Rancho,  Pocatello  ID 
83201.  (208)  237-0979. 


FOR  SALE:  32  K  static  programmable  memory  fac- 
tory assembled  and  tested.  Four  Industrial  Micro  8  K 
S-100  boards,  cost  $884  new,  asking  $650  (ran 
out  of  slots).  Teletype.  ASR33  teletypewriter  with 
paper  tape  reader/punch,  stand,  $  595  plus  shipping. 
Mark  Lyon.  6320  Red  Prairie  Rd,  Sheridan  OR 
97378. 


WILL  TRADE:  Have  written  programs  for  Bally  HLC 
with  audio  cassette  interface  such  as:  Checkbook 
Balancer,  Number  Sort.  Math  Quiz.  Tic-Tac-Toe.  Slot 
Machine.  Hourglass  Graphics.  I  am  interested  in  ac- 
quiring other  Bally  BASIC  programs  on  audio  cas- 
sette. Chuck  Zellers,  2921  Roselawn  Dr,  Grand 
Island  NE  68801. 


FOR  SALE:  Data  Products  portable  terminal,  1 0  cps, 
hard  copy,  built-in  modem  and  coupler,  ASCII/- 
Teletype,  RS-232  interface.  The  first  check  for 
$550  will  receive  this  device  which  is  excellent  for 
timesharing  or  as  a  microcomputer  terminal.  Carl 
Echols,  112  Creekside  Ln,  Noblesville  IN  46060, 
(317)  849-5247. 


FOR  SALE  OR  TRADE:  REMEX  high  speed  paper  tape 
reader  with  stop  on  character,  $150;  Burroughs 
digital  cassette  drive,  $50;  5  V  at  70  A  power  sup- 
ply, $50.  Ail  work  fine.  Trade  any  or  all  for  X,Y  plot- 
ter/recorder. Jim  McCord,  330  Vereda  Leyenda, 
Goleta  CA  93017.  (8051  968-6681. 


FOR  SALE:  DEC  MPS  microcomputer.  Includes  16  K 
programmable  memory  plus  4  K  bytes  eraseable 
read  only  memory.  Also  has  vectored  interrupt  board 
with  parallel  input/output.  Price  $395  plus  shipping. 
Curtis  P  Hoffman,  169  Millham  St,  Marlboro  MA 
01762,  (617)  481-7827. 


August  1979  ©  BriE  Publications  Inc        263 


Feaden  Senvice 


To  get  further  information  on  the  products  advertised  in  BYTE,  fill  out  the  reader  service  card  with  your  name  and  address.  Then 
circle  the  appropriate  numbers  for  the  advertisers  you  select  from  the  list.  Add  a  15-cent  stamp  to  the  card,  then  drop  it  in  the  mail. 
Not  only  do  you  gain  information,  but  our  advertisers  are  encouraged  to  use  the  marketplace  provided  by  BYTE.  This  helps  us  bring 
you  a  bigger  BYTE. 


Inquiry  No. 


Page  No. 


Inquiry  No. 


Page  No. 


Inquiry  No. 


Page  No. 


Inquiry  No. 


Page  No. 


•  Abbot  221 

1  AB  Computers  246 

8  Administrative  Systems  166 

A  Advanced  Computer  Products  235 

3  Aladdin  Automation  131 

6  Altos  41 

5  American  Square  Computers  219 

12  Anderson  Jacobson  203 

9  Apple  Computer  17 

10  AP  Products  95 

1 1  ASAP  Computer  Products  233 

19  ATV  Research  230 

18  Automated  Simulations  184 

20  Avery  Label  230 

21  Avionic  Enterprise  219 

29  base  2  inc.  109 

30  Beckian  Enterprises  242 

34  Beta  Business  Systems  219 

31  Biotecti  Electronics  35 

■  Bits  Inc.  117,  160,  161 
33  Body  Peripherals  120 

32  Buss/Charles  Floto  232 

•  BYTE  Back  Issues  210 

36  BYTE  Books  49,  53,  85-88,  130,  155 

•  BYTE  Subscriber  203 

•  BYTE  WATS  Line  201,  234 
41  California  Data  Corp  234 

39  California  Digital  239 

45  Central  Data  97 

43  ChatsvKorth  Data  62 

47  Chrislin  Industries  78 

44  CODEX  54 

53  COfvlPCO  102 

54  COfvlPCO  114 
56  COfvlPCO  116 

48  COfvlPRINT  (Computer  Printers  Int'l  I 

46  CompuServe  (fVlicroNET)  64,  65 

49  Computer  Bookkeeping  Services  Inc 

50  Computer  Dealer  Co-op  105 

■  Computer  Factory  NY  226,  227 
"  Computer  Headware  194 

55  Computer  Lab  of  NJ  197 
75  Computerland  8,  9 

66  Computer  Mart  of  NJ  &  PA  12 

•  The  Computer  Repair  Co  232 

68  Computer  Service  Center  219 

69  Computer  Service  Systems  Network 
65  Computers  Plus  Inc  201 

70  Computer  Store  of  San  Leandro  232 
73  Computex  Corp  98 

71  Computhink  124,  125 

40  CTC  1 1 1 

78  CT  fVlicro  Computer  128,  217,  224 

83  Corvus  Systems  45 

■  Creative  Software  182 
80  Cromemco  1,  2 

85  Cybernetics  Inc  156 

87  Data  Communications  Int'l  218 

89  Data  Decisions  180 


91 
94 
96 
93 

126 
98 
99 

102 


95 
100 
115 
120 
121 
125 
130 
131 
132 
133 
134 

143 
144 
145 
146 
150 
151 
152 
153 
159 
161 
162 
170 
171 
nc)39  172 
168 


142 


169 
173 
174 
175 
176 
177 
179 
180 
190 
191 
195 
200 
201 
203 
377 


207 
202 
199 
205 
215 


Data  Discount  Center  181  216 

Datamation  100  217 

Data/Print  Publishing  Co  150  212 

Datasearch  196  213 

Data-Trans  257  211 

Delta  Products  73  214 

Diablo  (Div  of  Xerox)  74  220 

Digital  Engineering  197  221 

Digital  Pathways  137  219 

Digitan  195  223 
DRC  (CA)  188 

DRC  (TX)  245  204 
Electrolabs  264 

Electronic  Control  Technology  99         208 

Electronic  Packing  Co  127  198 

Electronic  Systems  257,  258,  259  209 
Electronics  Warehouse  237 

Emerge  Systems  213  231 

Escon  202  233 

Falcon  Publishing  158  234 

FMG  Corp  208  230 

Forethought  Products  103  236 

GFN  Industries  115  237 

Gimix  83  238 

GLA  Enterprises  232  255 

Gledhill  Electronics  232  256 

Godbout  Electronics  175  257 

Godbout  Electronics  246  258 
Graham  Dorian  Enterprises  Clll 

G  W  Computers  Lid  20  281 

H  &  E  Computronics  163  282 

Hayden  Book  Go  106  280 

Heath  Company  33  283 

Hobbyworld  231  284 

Hollywood  Systems  242  285 

Houston  Instruments  23  286 

HUH  187  290 

HUH  187  291 

Industrial  Micro  Systems  149  287 
Infinite  Inc  234 

Information  Unlimited  Software  201  288 
Intecolor  (Div  Intelligent  Systems)  13   289 

Integrand  48  293 

Interactive  Microware  186  292 
Intertec  Data  Systems  141 

Ithaca  Audio  110  299 

Ithaca  Audio  229  294 

Jade  Co  248,  249  296 

Jameco  240  298 

Jameco  241  297 

Jim-Pak  252  306 
Kalbro  Computer  Brokers  (formerly  306 
US  Brokers  Co  Div  Kalbro  Corp)  232    301 

Lifeboat  Associates  92,  93,  123  304 

Loweco  Computer  234  302 

Mad  Hatter  Software  193  303 

The  Mail  Mart  232  312 

Marketline  Systems  210  313 
Measurement  Sys  &  Controls  183         315 


eCMB- 

£YTE'e  Ongoing  Monitor  Gox 


Measurement  Sys  &  Controls  219  317 
Measurement  Sys  &  Controls  234      81 

Micro  Age  179  311 

Micro  Ap  133  310 

Micro  Applications  Group  130  314 

Micro  Architect  118  322 
MIcroDaSys  5 

MicroDaSys  223  324 

Micro  Diversions  91  325 

Micromail  159  326 
Micro  Management  Systems  234  316 
Micro  Mike's  217 

Micropolis  134,  135  320 

Micro  Products  202  331 

MicroSoftware  (CAI)  188  319 
Microtek  15 

Microware  205  329 

The  Micro  Works  42  330 

Microworld  63  328 
Micro-Z  Co  234 

Mikos  244  327 

Mini  Computer  Suppliers  195  333 

Mission  Control  113  335 

Mission  Control  177  340 

Morrow/Thinker  Toys  11  341 

Morrow/Thinker  Toys  37  350 

Mountain  Hardware  58  352 

Mountain  Hardware  153  353 

M.T.I.  157  356 

NEECO  101  354 

NEECO  121  357 

Nelronics  222  358 
Newman  Computer  Exchange  247  355 
Newman  Computer  Exchange  251    360 

North  Star  Computer  21  363 

ODS  Inc  234  364 

Ohio  Scientific  Instrument  CIV  365 

OK  Machine  and  Tool  203  366 

Omikron  191  368 

onComputing  81  369 
On  Line  219 

Optimal  Technology  185  370 

Oregon  Software  104  374 

Osborne  &  Associates  169  375 

Owens  Associates  Inc  126  376 

P.K.C.  Inc  234  379 

Pacific  Exchanges  219  378 

Pacific  Office  Systems  253  384 

Page  Digital  243  387 
PAIA  Electronics  189 

PerCom  Data  60  389 

PerCom  Data  61  390 

PerCom  Data  256  391 

Personal  Computing  79    173  393 

Personal  Software  Inc  138,  139  394 

Practical  Applications  196  392 

Priority  I    260,261,262  401 
Prog  80    199 
Programmer's  Software  Exchange  230 


PRS47 

Q  Kit  (DivJ  R  Conwell  Corp)  57 

Quest  Electronics  255 

RACET  Computes  184 

Radio  Shack  Auth  Sales  Center  219 

RCA  69 

The  Recreational  Programmer  230 

RNB  129 

RNB  154 

Rochester  Data  14 

S-100  Inc  211 

St  Jude  232 

Sara  Tech  185 

S  C  Digital  181 

Michael  Shrayer  Software  165 

Shugart  Associates  6,  7 

68  Micro  Journal  215 

SMA  80 

Smoke  Signal  Broadcasting  29 

Software  Dev  and  Training  167 

Software  Dynamics  190 

Software  Ingenuity  230 

SSM  16 

Solid  State  Sales  250 

Soroc  Technology  Inc  43 

Southwest  Technical  Products  Corp  CM 

Structured  Analysis  Systems  142 

SubLOGIC  119 

Sunflex  230 

Sunny  International  238 

SuperSoft  151 

Sybex  25 

Synchro  Sound  79 

Tarbell  Electronics  71 

Technical  Systems  Consultants  75 

Technology  Transfer  122 

Technology  Transfer  148 

3G  Co  Inc  180 

3;M  Company  27 

Robert  Tinney  Graphics  55 

Tora  Systems  Inc  230 

Total  Information  Services  190 

TRS-80  Software  Exchange  198 

Ucatan  230 

Upper  Case  Books  201 

US  Robotics  204 

Vista  Computer  189 

V  R  Data  250 

Wameco  244 

Whales  99 

Wintek  Corp  230 

Wintek  Corp  232 

Worldwide  Electronics  219 

XComp  151 

XComp  164 

Xitex  212 

Zg  Systems  211 


^Correspond  directly  with  company. 


May  BOMB  Maps  a  Winner 


Article  IVIo. 


ARTICLE 


1  Allen:  An  Overview  of  LISP 

2  Laubsch,  Fischer,  and  Boclter:  LISP  Based  Systems  for  Education 

3  Prini  and  Rudalics:  Lambdino  Storage  IVIanagement  System 

4  Kornfeld:  Pattern-Directed  Invocation  Languages 

5  Ciarcia:  Anyone  Know  the  Real  Time? 

6  Albus:  A  Model  of  the  Brain  for  Robot  Control,  Part  3 

7  Yeager:  Exploring  TRS-80  Graphics 

8  Powers:  The  Nature  of  Robots,  Part  3 

9  Taft:  The  Design  of  an  M6800  LISP  Interpreter 

10  Pratt:  A  Mathematician's  View  of  LISP 

11  Halsema:  A  Preview  of  the  Motorola  68000 

12  Stoutemyer:  LISP  Based  Symbolic  Math  Systems  , 

13  Weyhrauch  and  Graves:  LISP  Applications  in  Boolean  Logic 

14  Gass:  An  Overview  of  Long  Division 


Page 

10 

18 

26 

34 

50 

66 

82 

94 

132 

162 

170 

176 

206 

220 


The  May  1979  first  place  BOMB 
award  of  $100  went  to  William  D 
Johnston  for  taking  a  direct  route  to 
the  top  with  "Computer  Generated 
Maps,"  page  10.  The  second  place 
prize  of  $50  went  to  Steve  Ciarcia  for 
"Communicate  on  a  Light  Beam," 
page  32.  Placing  third  was  "Represen- 
ting Three  Dimensional  Objects  In 
Your  Computer,"  page  14  by  Richard 
Blum,  with  Bob  Haas'  "Single  Chip 
Video  Controller,"  page  52  taking 
fourth  place. 


264        August  1979  ©  BYTE  Publications  Inc 


f^w-- 


\ 


i\lit| 


Gpshscn-Qopisn's  Integpstei),  On-Line  Ppogpsms 
Ape  Fast,  Efricient,  Aoi3  Easy  Tc  Ise. 


Rely  on  Graham-Dorian,  a  full-line 
computer  software  manufacturer,  for 
sophisticated  programs  —  the  most  detailed 
on  the  market  today.  They're  ready  to  go  to 
worl<  immediately  or  to  be  tailored  for  even 
more  specific  needs. 

On-line  capabilities  enable  you  to  make  a 
single  entry  and  update  all  affected  files.  An 
inquiry  into  a  file  at  any  time  provides 
up-to-date  information  —  no  batching  or 
sorting  of  input  data. 

The  programs  are  easy  to  use.  Messages 
on  the  video  display  guide  you  each  step  of  the 
way.  Programs  make  use  of  indexed 
sequential  and  chained  files  for  fast  and 
convehient  retrieval  of  data  with  efficient  use  of 
disk  space. 

Order  in  standard  eight-inch  disk  either 
double  or  single  density,  or  various  mini-floppy 
formats.  Each  program  contains  a  free 
CBASIC-2,  plus  user's  manual  and  hard  copy 
source  listing. 

•  Accounts  Receivable  —  Records  invoices,  prepares 
statements  and  trial  balance  reports,  etc.  Automatically 
reports  aging  of  accounts  in  periods  of  30,  60,  and  90 
days,  with  each  item  listed  separately. 

•  Accounts  Payable  —  Vendor  lookup  and  change, 
entering  vendor  invoices,  writing  checks  (many  options), 
cash  flow  analysis,  accounts  payable  check  register,  and 
vendor  list.  Ideal  for  analyzing  expenditures  by  vendor  and 
by  due  date. 


•  General  Ledger—  Includes  lookup  and  change,  making 
journal  entries,  trial  balance,  transaction  register,  chart 

of  accounts,  financial  statements,  and  monthly  closing. 

•  Job  Costing  —  Provides  work  order  lookup,  enters 
labor  transactions,  material  set-up,  progress  report  of 
hours,  labor  distribution  report,  weekly  labor  reset,  actual 
versus  estimated  cost  per  job. 

•  Inventory  —  Can  be  connected  with  cash  register  for 
point  of  sale  inventory  control.  Number  of  on-line  items 
limited  only  by  disk  space  available. 

•  Cash  Register  —  Creates  daily  sales  reports  containing 
information  on  gift  certificates,  paidouts,  overrings, 
refunds,  and  how  much  in  each  category  a  salesperson  sold. 

•  Payroll  —  Handles  100%  of  all  necessary  payroll 
functions  including  state  income  tax  tables  for  your  state. 
Ideally  suited  for  both  large  and  small  companies. 

•  Apartment  —  Said  one  user,  "Obviously,  this  was 
developed  by  apartment  owners."  The  package  fills 
virtually  all  the  needs  of  apartment  owners  and  managers. 
Ideal  for  projects  with  75  units  or  more. 

•  CBASIC-2  —  The  most  comprehensive  and  powerful 
commercially  oriented  BASIC  available  today. 
Enhancements  over  CBASIC-1 :  integer  variables,  multiple 
line  functions,  CHAINing  with  COMMON  variables, 
additional  predefined  functions,  etc.  Comes  free  with  any 
package,  or  purchase  separately. 

Compatible  with  many  computers:  Northstar, 
IMSAI,  Altos,  Cromenco,  Industrial  Micro  Systems, 
Radio  Shack  TRS-80,  SD  Systems,  Digital  Microsystems, 
Dynabyte  DB8/2,  Micropolis  MOD  II,  Vector  MZ,  and 
other  8080,  8085,  and  Z-80-based  systems. 
See  your  GDSS  dealer  or  send  for  information 
packet  and  sample  runs. 


Circle  152  on  inquiry  card. 


Graham-Dorian  Software  Systems 

A  Division  of  Graham-Dorian  Enterprises 

211  N.  Broadway  /  Wichita,  KS  67202  /  (316)  265-8633 


Ohio  Scientific  has  taken  its  standard  Challenger  III 
computer  and  marhed  it  to  the  new  Shugart  29  Mega- 
byte Winchester  Drive.  The  result  is  the  C3-C.  This  new 
microcomputer  now  fills  the  vacuum  that  existed  for 
computer  users  who  need  more  mass  storage  capa- 
bility than  floppies  can  offer  — yet  until  now,  could  not 
justify  the  additional  cost  of  a  larger  capacity  hard  disk 
computersuchasour  C3-B  74  Megabyte  disk  system. 

Winchester  Technology 

Winchester  hard  disk  drives  offer  small  business  and 
professional  computer  users  the  logical  solution  to 
mass  storage  problems  that  are  beyond  the  capability 
of  floppy  disks.  In  addition,  Winchester 
disksfeatureatrack  seek- 
time  that  is  much  better  , 
thanfloppiesand  because 
they  spin  at  eight  times  the 
rate  of  floppies,  Winches- 
ters have  a  shorter  latency 
Both  of  these  points  reflect 
one  remarkable  speed 
advantage  Winchester  disks 
have  over  floppies. 

Coupled  to theChallenger  III 
Computer 

Ohio  Scientific's  award  win- 
ning Challenger  III  computer 
is  a  classic.  It  is  the  only  com- 
puter series  that  utilizes  the 
three  most  popular  microproc- 
essors-6502A,  68B00  and 
Z-80.  This  tremendous  proc- 
essor versatility  enables  one  to 
utilize  a  seemingly  end  less  selec- 
tion of  quality  programs  available 
from  Ohio  Scientific's  software 
library  as   well   as   from    many 
independent  suppliers. 

And  Advanced  Software 

For  instance,  there  are  single  user, 
multi-user  and  network  operating 
systems.  A  complete  turnkey  small 
business  package,  OS-AMCAP  pro- 
vides accounts  receivable,  accounts 
payable,  disbursements,  cash  re 
ceipts,  general  ledger,  etc.  OS-CP/M 
offers  a  complete  FORTRAN  and 
COBOL  package.  And  there  is  WP-2,  a 
complete  word  processing  system.  For 
information    management,    OS-DMS, 
features  an  advanced  file  handling  system 
and  program  library  that  simplifies  informa- 
tion storage  and  recall  and  routinely  per- 
formstasks  which  usually  require  special 
programming  on  other  systems. 


Yields  the  Microcomputer  of  the  Future 

With  an  eye  toward  the  future,  the  C3-C,  like  all  other 
Challenger  Ill's  was  designed  with  provisions  for  future 
generation  16  bit  microprocessors  via  plug-in  options. 
There  are  ten  open  slots  for  lots  of  I/O  and  multi- 
user operation.  Truly,  the  Ohio  Scientific  C3-C  is  a 
computer  with  a  future. 

The  new  C3-C  computer 
with  29  Megabyte 
Winchester  Hard  Disk. 


$9340  With  48K  static 
RAM  and  OS-65U 
operating  system! 


600K  byte 
Dual  8"  floppys 


Easy  to  configure 
and  service. 
Backslide  mounting 
on  all  subassemblies.. 
10  open  slots  for 
expansion. 


1333  S.  CHILLICOTHE  RD.,  AURORA,  OHIO  44202  (216)  562-3101 


Circle  290  on  inquiry  card.